plexflow 0.0.118__py3-none-any.whl → 0.0.120__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- plexflow/core/context/partials/__init__.py +1 -0
- plexflow/core/context/partials/torrent_blacklist.py +18 -0
- plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/downloads/candidates/rank/__pycache__/ranking.cpython-312.pyc +0 -0
- plexflow/core/downloads/candidates/rank/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/downloads/qbit/interface.py +2 -2
- plexflow/core/metadata/providers/plex/datatypes.py +19 -19
- plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/ext/__pycache__/ext.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/extratorrent/__pycache__/extratorrent.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/snowfl/__pycache__/snowfl.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/tgxi/__init__.py +0 -0
- plexflow/core/torrents/providers/tgxi/tgxi.py +16 -0
- plexflow/core/torrents/providers/tgxi/utils.py +61 -0
- plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/torrentquest/__pycache__/torrentquest.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc +0 -0
- plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc +0 -0
- plexflow/utils/api/rest/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/utils/api/rest/__pycache__/antibot_restful.cpython-312.pyc +0 -0
- plexflow/utils/api/rest/__pycache__/plexful.cpython-312.pyc +0 -0
- plexflow/utils/api/rest/__pycache__/restful.cpython-312.pyc +0 -0
- plexflow/utils/api/rest/__pycache__/url_builder.cpython-312.pyc +0 -0
- plexflow/utils/image/__pycache__/storage.cpython-312.pyc +0 -0
- plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc +0 -0
- plexflow/utils/strings/__pycache__/language.cpython-312.pyc +0 -0
- plexflow/utils/strings/__pycache__/sanitize.cpython-312.pyc +0 -0
- plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc +0 -0
- plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/utils/torrent/__pycache__/files.cpython-312.pyc +0 -0
- plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc +0 -0
- plexflow/utils/torrent/compare/__pycache__/with_subtitles.cpython-312.pyc +0 -0
- plexflow/utils/torrent/compare/with_subtitles.py +89 -0
- plexflow/utils/torrent/extract/__pycache__/common.cpython-312.pyc +0 -0
- plexflow/utils/torrent/extract/__pycache__/ext.cpython-312.pyc +0 -0
- plexflow/utils/torrent/extract/__pycache__/extratorrent.cpython-312.pyc +0 -0
- plexflow/utils/torrent/extract/__pycache__/piratesparadise.cpython-312.pyc +0 -0
- plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc +0 -0
- plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc +0 -0
- plexflow/utils/torrent/extract/tgxi.py +64 -0
- {plexflow-0.0.118.dist-info → plexflow-0.0.120.dist-info}/METADATA +2 -1
- {plexflow-0.0.118.dist-info → plexflow-0.0.120.dist-info}/RECORD +65 -58
- {plexflow-0.0.118.dist-info → plexflow-0.0.120.dist-info}/entry_points.txt +1 -0
- {plexflow-0.0.118.dist-info → plexflow-0.0.120.dist-info}/WHEEL +0 -0
@@ -13,3 +13,4 @@ from plexflow.core.context.partials.candidates import Candidates
|
|
13
13
|
from plexflow.core.context.partials.completed_downloads import CompletedDownloads
|
14
14
|
from plexflow.core.context.partials.movie_assets import MovieAssets
|
15
15
|
from plexflow.core.context.partials.torrent_deadline import TorrentDeadline
|
16
|
+
from plexflow.core.context.partials.torrent_blacklist import TorrentBlacklist
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from plexflow.core.context.partial_context import PartialContext
|
2
|
+
from qbittorrentapi.torrents import TorrentDictionary
|
3
|
+
|
4
|
+
class TorrentBlacklist(PartialContext):
|
5
|
+
def __init__(self, **kwargs) -> None:
|
6
|
+
super().__init__(**kwargs)
|
7
|
+
|
8
|
+
def ban(self, torrent: TorrentDictionary):
|
9
|
+
hash = torrent.hash
|
10
|
+
key = f"blacklist/torrents/{hash}"
|
11
|
+
self.set_global(key, torrent)
|
12
|
+
|
13
|
+
def is_banned(self, hash: str) -> bool:
|
14
|
+
try:
|
15
|
+
torrent = self.get_global(f"blacklist/torrents/{hash}")
|
16
|
+
return isinstance(torrent, TorrentDictionary)
|
17
|
+
except:
|
18
|
+
return False
|
Binary file
|
Binary file
|
Binary file
|
@@ -61,9 +61,9 @@ def is_completed(torrent: TorrentDictionary) -> bool:
|
|
61
61
|
def is_downloading(torrent: TorrentDictionary) -> bool:
|
62
62
|
return torrent.state in [
|
63
63
|
"downloading",
|
64
|
-
"stalled_downloading",
|
64
|
+
# "stalled_downloading",
|
65
65
|
"checking",
|
66
|
-
"stalledDL",
|
66
|
+
# "stalledDL",
|
67
67
|
"forcedDL",
|
68
68
|
]
|
69
69
|
|
@@ -245,25 +245,25 @@ class PlexMovieMetadata:
|
|
245
245
|
Rating (Optional[List[PlexRating]]): The list of ratings of the movie.
|
246
246
|
Studio (Optional[List[PlexStudio]]): The list of studios associated with the movie.
|
247
247
|
"""
|
248
|
-
title: Optional[str]
|
249
|
-
guid: Optional[str]
|
250
|
-
key: Optional[str]
|
251
|
-
primaryExtraKey: Optional[str]
|
252
|
-
rating: Optional[float]
|
253
|
-
ratingKey: Optional[str]
|
254
|
-
studio: Optional[str]
|
255
|
-
summary: Optional[str]
|
256
|
-
tagline: Optional[str]
|
257
|
-
type: Optional[str]
|
258
|
-
thumb: Optional[str]
|
259
|
-
addedAt: Optional[int]
|
260
|
-
duration: Optional[int]
|
261
|
-
publicPagesURL: Optional[str]
|
262
|
-
slug: Optional[str]
|
263
|
-
userState: Optional[bool]
|
264
|
-
contentRating: Optional[str]
|
265
|
-
originallyAvailableAt: Optional[str]
|
266
|
-
year: Optional[int]
|
248
|
+
title: Optional[str] = field(default=None)
|
249
|
+
guid: Optional[str] = field(default=None)
|
250
|
+
key: Optional[str] = field(default=None)
|
251
|
+
primaryExtraKey: Optional[str] = field(default=None)
|
252
|
+
rating: Optional[float] = field(default=None)
|
253
|
+
ratingKey: Optional[str] = field(default=None)
|
254
|
+
studio: Optional[str] = field(default=None)
|
255
|
+
summary: Optional[str] = field(default=None)
|
256
|
+
tagline: Optional[str] = field(default=None)
|
257
|
+
type: Optional[str] = field(default=None)
|
258
|
+
thumb: Optional[str] = field(default=None)
|
259
|
+
addedAt: Optional[int] = field(default=None)
|
260
|
+
duration: Optional[int] = field(default=None)
|
261
|
+
publicPagesURL: Optional[str] = field(default=None)
|
262
|
+
slug: Optional[str] = field(default=None)
|
263
|
+
userState: Optional[bool] = field(default=None)
|
264
|
+
contentRating: Optional[str] = field(default=None)
|
265
|
+
originallyAvailableAt: Optional[str] = field(default=None)
|
266
|
+
year: Optional[int] = field(default=None)
|
267
267
|
audienceRating: Optional[float] = None
|
268
268
|
audienceRatingImage: Optional[str] = None
|
269
269
|
ratingImage: Optional[str] = None
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
from plexflow.utils.api.rest.plexful import Plexful
|
2
|
+
from plexflow.core.torrents.providers.therarbg.utils import TheRarbgSearchResult
|
3
|
+
from plexflow.utils.torrent.extract.therarbg import extract_torrent_results
|
4
|
+
from typing import List
|
5
|
+
|
6
|
+
class TheRarbg(Plexful):
|
7
|
+
def __init__(self, base_url: str = 'https://therarbg.com'):
|
8
|
+
super().__init__(base_url=base_url)
|
9
|
+
|
10
|
+
def search(self, query: str, headless: bool = True, **kwargs) -> List[TheRarbgSearchResult]:
|
11
|
+
response = self.get(f'/get-posts/keywords:{query}/')
|
12
|
+
|
13
|
+
response.raise_for_status()
|
14
|
+
|
15
|
+
data = extract_torrent_results(html=response.text if not headless else response.html)
|
16
|
+
return list(map(lambda t: TheRarbgSearchResult(**t), data))
|
@@ -0,0 +1,61 @@
|
|
1
|
+
from datetime import datetime
|
2
|
+
from plexflow.core.torrents.results.torrent import Torrent
|
3
|
+
from plexflow.utils.imdb.imdb_codes import IMDbCode
|
4
|
+
from plexflow.utils.torrent.hash import extract_torrent_hash
|
5
|
+
|
6
|
+
class TheRarbgSearchResult(Torrent):
|
7
|
+
def __init__(self, **kwargs):
|
8
|
+
super().__init__()
|
9
|
+
self._name = kwargs.get('name')
|
10
|
+
self._date = kwargs.get('date')
|
11
|
+
self._type = kwargs.get('type')
|
12
|
+
self._size = kwargs.get('size_bytes')
|
13
|
+
self._seeds = kwargs.get('seeds')
|
14
|
+
self._peers = kwargs.get('peers')
|
15
|
+
self._link = kwargs.get('link')
|
16
|
+
self._imdb = kwargs.get('imdb')
|
17
|
+
self.src = 'therarbg'
|
18
|
+
|
19
|
+
@property
|
20
|
+
def source(self) -> str:
|
21
|
+
return self.src
|
22
|
+
|
23
|
+
@property
|
24
|
+
def magnet(self) -> str:
|
25
|
+
return None
|
26
|
+
|
27
|
+
@property
|
28
|
+
def date(self) -> datetime:
|
29
|
+
return self._date
|
30
|
+
|
31
|
+
@property
|
32
|
+
def seeds(self) -> int:
|
33
|
+
return self._seeds
|
34
|
+
|
35
|
+
@property
|
36
|
+
def peers(self) -> int:
|
37
|
+
return self._peers
|
38
|
+
|
39
|
+
@property
|
40
|
+
def size_bytes(self) -> int:
|
41
|
+
return self._size
|
42
|
+
|
43
|
+
@property
|
44
|
+
def imdb_code(self) -> IMDbCode:
|
45
|
+
return self._imdb
|
46
|
+
|
47
|
+
@property
|
48
|
+
def release_name(self) -> str:
|
49
|
+
return self._name
|
50
|
+
|
51
|
+
@property
|
52
|
+
def hash(self) -> str:
|
53
|
+
return None
|
54
|
+
|
55
|
+
@property
|
56
|
+
def url(self) -> str:
|
57
|
+
return self._link
|
58
|
+
|
59
|
+
@property
|
60
|
+
def category(self) -> str:
|
61
|
+
return self._type
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import os
|
2
|
+
from google import genai
|
3
|
+
from google.genai import types
|
4
|
+
|
5
|
+
|
6
|
+
def generate(torrent: str, subtitle: str):
|
7
|
+
client = genai.Client(
|
8
|
+
api_key=os.environ.get("GEMINI_API_KEY"),
|
9
|
+
)
|
10
|
+
|
11
|
+
model = "gemini-2.5-flash"
|
12
|
+
contents = [
|
13
|
+
types.Content(
|
14
|
+
role="user",
|
15
|
+
parts=[
|
16
|
+
types.Part.from_text(text=f"""torrent: {torrent}
|
17
|
+
subtitle: {subtitle}"""),
|
18
|
+
],
|
19
|
+
),
|
20
|
+
]
|
21
|
+
generate_content_config = types.GenerateContentConfig(
|
22
|
+
thinking_config = types.ThinkingConfig(
|
23
|
+
thinking_budget=-1,
|
24
|
+
),
|
25
|
+
response_mime_type="application/json",
|
26
|
+
response_schema=genai.types.Schema(
|
27
|
+
type = genai.types.Type.OBJECT,
|
28
|
+
required = ["subtitle", "torrent", "is_match", "reason"],
|
29
|
+
properties = {
|
30
|
+
"subtitle": genai.types.Schema(
|
31
|
+
type = genai.types.Type.STRING,
|
32
|
+
),
|
33
|
+
"torrent": genai.types.Schema(
|
34
|
+
type = genai.types.Type.STRING,
|
35
|
+
),
|
36
|
+
"is_match": genai.types.Schema(
|
37
|
+
type = genai.types.Type.BOOLEAN,
|
38
|
+
),
|
39
|
+
"reason": genai.types.Schema(
|
40
|
+
type = genai.types.Type.STRING,
|
41
|
+
),
|
42
|
+
},
|
43
|
+
),
|
44
|
+
system_instruction=[
|
45
|
+
types.Part.from_text(text="""You are an expert at matching subtitle names with torrent names. Resolution and codecs are not important. Consider the release group when matching, however it is not the most important thing. You always output a JSON in the following format:
|
46
|
+
|
47
|
+
{
|
48
|
+
\"subtitle\": string,
|
49
|
+
\"torrent\": string,
|
50
|
+
\"is_match\": boolean,
|
51
|
+
\"reason\": string
|
52
|
+
}"""),
|
53
|
+
],
|
54
|
+
)
|
55
|
+
|
56
|
+
# Initialize an empty string to store the full response
|
57
|
+
full_response_text = ""
|
58
|
+
|
59
|
+
for chunk in client.models.generate_content_stream(
|
60
|
+
model=model,
|
61
|
+
contents=contents,
|
62
|
+
config=generate_content_config,
|
63
|
+
):
|
64
|
+
# Append each chunk's text to the string
|
65
|
+
full_response_text += chunk.text
|
66
|
+
# Optional: Print chunks as they arrive if you still want to see the streaming
|
67
|
+
# print(chunk.text, end="")
|
68
|
+
|
69
|
+
# Now, full_response_text contains the complete JSON string
|
70
|
+
#print("\n--- Complete Generated Output ---")
|
71
|
+
#print(full_response_text)
|
72
|
+
|
73
|
+
# You can return this string if you want to use it outside the function
|
74
|
+
return full_response_text
|
75
|
+
|
76
|
+
|
77
|
+
def compare(torrent: str, subtitle: str) -> dict:
|
78
|
+
generated_json_string = generate(
|
79
|
+
torrent=torrent,
|
80
|
+
subtitle=subtitle,
|
81
|
+
)
|
82
|
+
|
83
|
+
import json
|
84
|
+
try:
|
85
|
+
data = json.loads(generated_json_string)
|
86
|
+
return data
|
87
|
+
except json.JSONDecodeError as e:
|
88
|
+
print(f"\nError decoding JSON: {e}")
|
89
|
+
print(f"Raw string: {generated_json_string}")
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,64 @@
|
|
1
|
+
from bs4 import BeautifulSoup
|
2
|
+
from urllib.parse import urljoin
|
3
|
+
import dateparser
|
4
|
+
from plexflow.utils.strings.filesize import parse_size
|
5
|
+
from plexflow.utils.imdb.imdb_codes import extract_imdb_code
|
6
|
+
|
7
|
+
|
8
|
+
def extract_torrent_results(html):
|
9
|
+
"""Extracts torrent information from HTML, resilient to HTML structure changes.
|
10
|
+
|
11
|
+
Args:
|
12
|
+
html: The HTML content of the page.
|
13
|
+
|
14
|
+
Returns:
|
15
|
+
A list of dictionaries, each containing torrent information:
|
16
|
+
- 'title': The title of the torrent.
|
17
|
+
- 'link': The link to the torrent detail page.
|
18
|
+
- 'category': The category of the torrent.
|
19
|
+
- 'added': The date the torrent was added.
|
20
|
+
- 'size': The size of the torrent.
|
21
|
+
- 'seeders': The number of seeders.
|
22
|
+
- 'leechers': The number of leechers.
|
23
|
+
- 'thumbnail': The URL of the torrent thumbnail (if available).
|
24
|
+
"""
|
25
|
+
|
26
|
+
torrents = []
|
27
|
+
soup = BeautifulSoup(html, 'html.parser')
|
28
|
+
|
29
|
+
# Find all table rows that likely contain torrent information
|
30
|
+
rows = soup.find_all('div', class_='tgxtablerow')
|
31
|
+
|
32
|
+
for row in rows:
|
33
|
+
torrent = {}
|
34
|
+
|
35
|
+
# Extract data from the cells
|
36
|
+
cells = row.find_all('div', class_='tgxtablecell')
|
37
|
+
|
38
|
+
# Title (get full title from link href)
|
39
|
+
title_cell = cells[3]
|
40
|
+
title_link = title_cell.find('a')
|
41
|
+
|
42
|
+
if title_link:
|
43
|
+
# Get the part of the href after the last '/'
|
44
|
+
torrent['link'] = urljoin('https://torrentgalaxy.info', title_link['href'])
|
45
|
+
else:
|
46
|
+
torrent['link'] = ''
|
47
|
+
|
48
|
+
torrent['name'] = title_cell.text.strip()
|
49
|
+
|
50
|
+
# lets search in all links of the cell
|
51
|
+
# for an imdb id
|
52
|
+
for link in title_cell.find_all('a'):
|
53
|
+
href = link.get('href')
|
54
|
+
if isinstance(href, str):
|
55
|
+
imdb_code = next(extract_imdb_code(href), None)
|
56
|
+
if isinstance(imdb_code, str):
|
57
|
+
torrent['imdb'] = imdb_code
|
58
|
+
break
|
59
|
+
|
60
|
+
# TODO
|
61
|
+
|
62
|
+
torrents.append(torrent)
|
63
|
+
|
64
|
+
return torrents
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: plexflow
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.120
|
4
4
|
Summary: A short description of the package.
|
5
5
|
License: MIT
|
6
6
|
Keywords: keyword1,keyword2,keyword3
|
@@ -29,6 +29,7 @@ Requires-Dist: dataclasses-json (>=0.6.4,<0.7.0)
|
|
29
29
|
Requires-Dist: dateparser (>=1.2.0,<2.0.0)
|
30
30
|
Requires-Dist: fake-useragent (>=1.4.0,<2.0.0)
|
31
31
|
Requires-Dist: google-cloud-pubsub (>=2.28.0,<3.0.0)
|
32
|
+
Requires-Dist: google-genai (>=1.26.0,<2.0.0)
|
32
33
|
Requires-Dist: groq (>=0.9.0,<0.10.0)
|
33
34
|
Requires-Dist: html5lib (>=1.1,<2.0)
|
34
35
|
Requires-Dist: humanfriendly (>=10.0,<11.0)
|
@@ -20,7 +20,7 @@ plexflow/core/context/metadata/tmdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
|
|
20
20
|
plexflow/core/context/metadata/tmdb/__pycache__/context.cpython-311.pyc,sha256=dcvTi-0PnZfbLfsLu5QuX_jpAeQYmZR7ZbjzQMHQov4,2627
|
21
21
|
plexflow/core/context/metadata/tmdb/context.py,sha256=zlI_Zs_1bAdR60xtl4j2_UBhIery1VcsQz2a53l5g20,1521
|
22
22
|
plexflow/core/context/partial_context.py,sha256=684qHyQ-ulkZnXm-CMmhP7ont-9lIi1WEAbLTjyS4kA,2301
|
23
|
-
plexflow/core/context/partials/__init__.py,sha256=
|
23
|
+
plexflow/core/context/partials/__init__.py,sha256=YUZlUl6vZlFV4ncwezVX1fDKs0B9gwUIXVyqkIPzMQ8,1068
|
24
24
|
plexflow/core/context/partials/__pycache__/__init__.cpython-311.pyc,sha256=x_5HUdt-0vrq9LMmc8Vj0usxqQ_ZHD4WZd4HrvhwAZc,346
|
25
25
|
plexflow/core/context/partials/__pycache__/ids.cpython-311.pyc,sha256=wV7r4FAwonAshns-NGcowqGamtrM_Q_2NbiHQhOLkjg,2638
|
26
26
|
plexflow/core/context/partials/__pycache__/watchlist.cpython-311.pyc,sha256=k-0BM-AvH-zObpwY0XR8CYrT21kPEa0fmeBmf0wscE0,1466
|
@@ -35,6 +35,7 @@ plexflow/core/context/partials/reports.py,sha256=0W58RwK3VSsVHbF0rhvMNNlZZr01eut
|
|
35
35
|
plexflow/core/context/partials/subtitles.py,sha256=0NhKGkP-sArQswuSyA7puRSjjoobF-3Ah7Pd39QkgTU,535
|
36
36
|
plexflow/core/context/partials/tgx_batch.py,sha256=TduB09oBOQ8CtmPYsHIeNe7AI-ypKw21zQAX-7qktEs,859
|
37
37
|
plexflow/core/context/partials/tgx_context.py,sha256=_FuhOvKsFqi_uynHxgC9_QIR2CfYmz-uJCRFtGFJmXI,1641
|
38
|
+
plexflow/core/context/partials/torrent_blacklist.py,sha256=6Uf65CF7M-JdgDt3k4Hi9WIpMkabp2eI4Ryubhjco0s,623
|
38
39
|
plexflow/core/context/partials/torrent_deadline.py,sha256=Nr5HqvAy0VT-GSd9eYPkUtKZqHpWhniE9P51xXFOji8,782
|
39
40
|
plexflow/core/context/partials/torrents.py,sha256=GtO4rlb7V2N-4QEWt-ODssEsdUlQ2o0lTo_BFI5i3lw,1109
|
40
41
|
plexflow/core/context/partials/universal_torrents.py,sha256=yohdSEhspSdvmrI6NeBB2Racb7yS2kz7qyFat6gNw6k,563
|
@@ -67,17 +68,17 @@ plexflow/core/downloads/__pycache__/__init__.cpython-312.pyc,sha256=soaT0G2pvzN6
|
|
67
68
|
plexflow/core/downloads/candidates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
69
|
plexflow/core/downloads/candidates/__pycache__/__init__.cpython-312.pyc,sha256=rukNX00PSteBonRk-cayzNRk17ypWfE4noOAR3Ibjn0,170
|
69
70
|
plexflow/core/downloads/candidates/__pycache__/download_candidate.cpython-312.pyc,sha256=6qCk-6nvWxTczY0G7FbY_tQ2xOqllQrVdROnm_IdkBg,9573
|
70
|
-
plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc,sha256=
|
71
|
+
plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc,sha256=siHmGpfFms4ImysVqDU50VLzRt24E2tDyhJb2O6xwok,2199
|
71
72
|
plexflow/core/downloads/candidates/download_candidate.py,sha256=6lQbtNw8uGr5B8qrkOOCxxvCKGHvFoEq8JjHGNB5FN8,5989
|
72
73
|
plexflow/core/downloads/candidates/filtered.py,sha256=HgUY0S3aWAeHASHTjND9hyjCtGNLhUzLOL90G2CDxKg,1842
|
73
|
-
plexflow/core/downloads/candidates/rank/__pycache__/ranking.cpython-312.pyc,sha256=
|
74
|
-
plexflow/core/downloads/candidates/rank/__pycache__/utils.cpython-312.pyc,sha256=
|
74
|
+
plexflow/core/downloads/candidates/rank/__pycache__/ranking.cpython-312.pyc,sha256=PyFgF-AfVisFErJ9PHeHb8RYLc4WIeRXQL3WSU83MnU,4298
|
75
|
+
plexflow/core/downloads/candidates/rank/__pycache__/utils.cpython-312.pyc,sha256=YS3mCbqz2dnIvZuODAW8hAi9iDOp3HQDde0WVl4CBo0,426
|
75
76
|
plexflow/core/downloads/candidates/rank/ranking.py,sha256=p86f3DQmXJNE53gPk9E5RcKA7dgXI4wPQsIh9ae1uxY,2490
|
76
77
|
plexflow/core/downloads/candidates/rank/utils.py,sha256=R4Ai4KmZRONo9vd2rf32DdGxVkANHYFwSjrO5WVjX9U,100
|
77
78
|
plexflow/core/downloads/candidates/utils.py,sha256=BnuDSRjU9mVYSh9ejKgfvlLi0bWEqc07uLyskC-bYhw,1874
|
78
79
|
plexflow/core/downloads/qbit/__pycache__/interface.cpython-312.pyc,sha256=szUoTWpZNpHwJ0OnXer8ZLeAYIvHND-rX1lB2Juv-J4,3335
|
79
80
|
plexflow/core/downloads/qbit/__pycache__/schedule.cpython-312.pyc,sha256=ESOLrk6sLpb1mtijuDGNKvAHaYopVQBwSDzdt8dFNow,1350
|
80
|
-
plexflow/core/downloads/qbit/interface.py,sha256=
|
81
|
+
plexflow/core/downloads/qbit/interface.py,sha256=QeBxe786H-JANSMEwueTE1t9xwYSZ3Ewkng8Me0_xC0,2440
|
81
82
|
plexflow/core/downloads/qbit/schedule.py,sha256=5w3JpbIGRc5xS_ZjfKXMXywi-2NXL_2y_Izx0DmUGnE,907
|
82
83
|
plexflow/core/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
84
|
plexflow/core/env/env.py,sha256=8cK49WiKD_H3B9K0QiMu7pkXTld40ojRB3sK7noQM44,953
|
@@ -220,7 +221,7 @@ plexflow/core/metadata/providers/plex/__pycache__/moviemeter.cpython-311.pyc,sha
|
|
220
221
|
plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-311.pyc,sha256=FgbspEc3m5Vkm_m9Ry7gVAavs_2-4Er4FIREdJgaDIQ,8182
|
221
222
|
plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-312.pyc,sha256=GKjYqAdmiDSuAQ3HlsQJMRAHfi65sbw7maeLcuq6rbs,7334
|
222
223
|
plexflow/core/metadata/providers/plex/__pycache__/tmdb.cpython-311.pyc,sha256=vWlpw_-ldSWwFvz67kTwxK9XxZPy7iExyLgD6rTOf10,4200
|
223
|
-
plexflow/core/metadata/providers/plex/datatypes.py,sha256
|
224
|
+
plexflow/core/metadata/providers/plex/datatypes.py,sha256=-PSBCSyR5sfA2TOFCAr5mlnfSMngz8OaEjcc51CCw_U,32441
|
224
225
|
plexflow/core/metadata/providers/plex/plex.py,sha256=KrOjSLzeZVIGDnLDC7dw87Yizq5h3Fbf9MtPv_tcET8,5918
|
225
226
|
plexflow/core/metadata/providers/tmdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
226
227
|
plexflow/core/metadata/providers/tmdb/__pycache__/__init__.cpython-311.pyc,sha256=djXYmvhVt2MFuzdiZ7ojQCXMa9UffVv_j_hBl0bdIvM,187
|
@@ -396,7 +397,7 @@ plexflow/core/torrents/analyzers/analyzed_torrent.py,sha256=gsAr5RjYVXozWUaP3zSh
|
|
396
397
|
plexflow/core/torrents/analyzers/analyzer.py,sha256=-KqZpwrrQpu5Aqt94plO5fUr1RQOOdCzKb1dT5P1SoE,1358
|
397
398
|
plexflow/core/torrents/analyzers/torrentquest/__pycache__/analyzer.cpython-312.pyc,sha256=NpoTFmZEWD7_49Qdbr4_CsvIn5F0uOjls-uWa3hgodY,2759
|
398
399
|
plexflow/core/torrents/analyzers/torrentquest/analyzer.py,sha256=f2X3CcYBA9xYZ6kRLkGQ5YK5feXjsw229z5nLWUHMEI,1907
|
399
|
-
plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc,sha256=
|
400
|
+
plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc,sha256=9lJlAtKIDRoxpxvCL_oazLZCPhAW1Lh26soE-tZMVVk,2503
|
400
401
|
plexflow/core/torrents/auto/auto_providers/auto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
401
402
|
plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-311.pyc,sha256=qCFNPGmwyRmmvaF4ox321aGG3j1ix-HTZg8LA5kr0QE,197
|
402
403
|
plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc,sha256=vaXlU_2wadR_q6ZWmjygCqx4BjjtyYaHXzC5fD6CI1w,185
|
@@ -415,28 +416,28 @@ plexflow/core/torrents/auto/auto_providers/tpb/torrent.py,sha256=8X2i75s3sI9rGcT
|
|
415
416
|
plexflow/core/torrents/auto/auto_torrents.py,sha256=Raal3-ZK30o8hOvQrwiWYmiQy7zYkFcKTLi4wQi4K7k,1721
|
416
417
|
plexflow/core/torrents/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
417
418
|
plexflow/core/torrents/providers/__pycache__/__init__.cpython-311.pyc,sha256=8u9BzsXTcFt1MeuWCG0TjlyZaO7NJjsSfx_OUByR5rE,182
|
418
|
-
plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc,sha256=
|
419
|
+
plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc,sha256=z6zgerdghp5H7HSd9hi6ZdF3AVAFE92_eITQtdobJyI,168
|
419
420
|
plexflow/core/torrents/providers/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
420
421
|
plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
|
421
|
-
plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-312.pyc,sha256=
|
422
|
-
plexflow/core/torrents/providers/ext/__pycache__/ext.cpython-312.pyc,sha256=
|
422
|
+
plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-312.pyc,sha256=psmUYInE7wv50Sl2__yA1jtbSMJtT4f_EhhTe-MQsMM,172
|
423
|
+
plexflow/core/torrents/providers/ext/__pycache__/ext.cpython-312.pyc,sha256=yum8H2HHgU2SF88AQTLBIYcDCs4c-9qNimpd6iOjReg,1702
|
423
424
|
plexflow/core/torrents/providers/ext/__pycache__/extratorrent.cpython-312.pyc,sha256=jFH8XCLnDh4ZNXs_VHoua7yJrOzf4UXE9ocwEvb40uk,1849
|
424
425
|
plexflow/core/torrents/providers/ext/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
|
425
426
|
plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
|
426
427
|
plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
|
427
428
|
plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
|
428
|
-
plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc,sha256=
|
429
|
+
plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc,sha256=Op0KvfCw-d2uiTyUJSgk6F4ZPqArWTldkeMta9PMvGM,3522
|
429
430
|
plexflow/core/torrents/providers/ext/ext.py,sha256=P_cg14aRlX4MyMZnI4j8bxFH4JnNkow0-wO2Ye9a9-s,759
|
430
431
|
plexflow/core/torrents/providers/ext/utils.py,sha256=5luyin-_yCSxMtlx1W0DAKZaCAyKnBdvfpRmKojvTI4,1445
|
431
432
|
plexflow/core/torrents/providers/extratorrent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
432
433
|
plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
|
433
|
-
plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-312.pyc,sha256=
|
434
|
-
plexflow/core/torrents/providers/extratorrent/__pycache__/extratorrent.cpython-312.pyc,sha256=
|
434
|
+
plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-312.pyc,sha256=4LbAGJRxM6nY0F534gvcWHnAKybTf2HOy0Q-nV8JDAY,181
|
435
|
+
plexflow/core/torrents/providers/extratorrent/__pycache__/extratorrent.cpython-312.pyc,sha256=3GTVAL8Cprny9f0-U9evtm-y2sVfiLxSuzvRrKhTDD8,1845
|
435
436
|
plexflow/core/torrents/providers/extratorrent/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
|
436
437
|
plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
|
437
438
|
plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
|
438
439
|
plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
|
439
|
-
plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc,sha256=
|
440
|
+
plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc,sha256=o6wntAM0FQhr7XMQIaA5WOkvsm-IikFEgLnVzsUQ6SU,3960
|
440
441
|
plexflow/core/torrents/providers/extratorrent/extratorrent.py,sha256=eKfomcjs41jxQfttX7Qwd6b-wmpZ3S4rCcsU_sewtDo,895
|
441
442
|
plexflow/core/torrents/providers/extratorrent/utils.py,sha256=9D0-0Lr6R6gdQb2rsGcSYOqrvt8vlcoLN0GedjumSnk,1608
|
442
443
|
plexflow/core/torrents/providers/eztv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -448,15 +449,15 @@ plexflow/core/torrents/providers/eztv/eztv.py,sha256=VG_l6UjDztkl-pokmkLuqKsY2Gm
|
|
448
449
|
plexflow/core/torrents/providers/eztv/utils.py,sha256=JaXyqGA0Zc0BhuoC75JkKy4PmN3AO4E-817_BkSY6J4,2850
|
449
450
|
plexflow/core/torrents/providers/piratesparadise/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
450
451
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
|
451
|
-
plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc,sha256=
|
452
|
+
plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc,sha256=_I4DbnxABDb3t3qVG6v8Wqv-KMndvKLvKimCnzlBPzc,184
|
452
453
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/extratorrent.cpython-312.pyc,sha256=jFH8XCLnDh4ZNXs_VHoua7yJrOzf4UXE9ocwEvb40uk,1849
|
453
|
-
plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc,sha256=
|
454
|
+
plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc,sha256=GJQDccj_-84AOSNpkyCgn46ZmomzRuIEcWhSQq1vOEs,1878
|
454
455
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/therarbg.cpython-312.pyc,sha256=EuY35TKrVDa6nz3JrVqRGURM9AOFZKeX1DPaHIGn5yo,1732
|
455
456
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
|
456
457
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
|
457
458
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
|
458
459
|
plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
|
459
|
-
plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc,sha256=
|
460
|
+
plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc,sha256=IskKRx7fzF6aIm1vhrUH2RlqsVugV0OW4V_WT26BoAE,3543
|
460
461
|
plexflow/core/torrents/providers/piratesparadise/piratesparadise.py,sha256=p0V00VKDKijf3B63yVaea2YdRLLIkJAOpPVhTKPglDc,929
|
461
462
|
plexflow/core/torrents/providers/piratesparadise/utils.py,sha256=XIFQZT15e4rOjiI71uPvXPiEz2tNHAZg4jU1hrlrupU,1459
|
462
463
|
plexflow/core/torrents/providers/rarbg2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -470,11 +471,11 @@ plexflow/core/torrents/providers/rarbg2/rarbg2.py,sha256=SZ9EPO78XQFa6AoajJWy93M
|
|
470
471
|
plexflow/core/torrents/providers/rarbg2/utils.py,sha256=7M96ilgkfMssOhSvB99SgM9Dfgf1sqXEYtzw1I7SCw4,1854
|
471
472
|
plexflow/core/torrents/providers/snowfl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
472
473
|
plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-311.pyc,sha256=QTE1sD-I-LNDtSuyErNJyVT5WwwI5V4nhk3nzW4c60Q,186
|
473
|
-
plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-312.pyc,sha256=
|
474
|
-
plexflow/core/torrents/providers/snowfl/__pycache__/snowfl.cpython-312.pyc,sha256=
|
474
|
+
plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-312.pyc,sha256=Yd1nxdBnVS9Ac2b5Gp7ZdDidzRsesQg_g7N5-3pdvLA,175
|
475
|
+
plexflow/core/torrents/providers/snowfl/__pycache__/snowfl.cpython-312.pyc,sha256=knrmasp7hDV1BU-h_TC-W7apuQ7pAZoMTP5ocSvPm4E,2185
|
475
476
|
plexflow/core/torrents/providers/snowfl/__pycache__/tpb.cpython-311.pyc,sha256=Pgfz7x-ffcY_ygNbwKFsM-BFn_CRVeH3PEm-TZMlj-s,1662
|
476
477
|
plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-311.pyc,sha256=3TI3O9zJmIhY9RL93XgInV0xNnVl0fVQk-fySGGok6k,4241
|
477
|
-
plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc,sha256=
|
478
|
+
plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc,sha256=lJ3bN9isXhSXM9i2fqOwYv2rpSqXQiAFZSscwB4Er74,3602
|
478
479
|
plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-311.pyc,sha256=aLUsam8hsIOlOZ5n4hOA4TlIrst9d94nzuPGwYNNQmc,2725
|
479
480
|
plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-312.pyc,sha256=WLnag2fiEWBRNDRNY_OIAlZvwQd2Sdg5jX-C_Dxx38M,2245
|
480
481
|
plexflow/core/torrents/providers/snowfl/snowfl.py,sha256=PNizfDcJkbeNpmXuw3I1SlTsgRFj9z9zZDxwblDYFAg,1200
|
@@ -490,45 +491,48 @@ plexflow/core/torrents/providers/tgx/context.py,sha256=qXllx-laicYXqE2tDwcJf8W-l
|
|
490
491
|
plexflow/core/torrents/providers/tgx/dump.py,sha256=F9VdUyTT4BnQ7V-ESTAg7rWD4iPoUVg1ufzBWw7dIFw,1356
|
491
492
|
plexflow/core/torrents/providers/tgx/tgx.py,sha256=nt5dIcCrDsF91zds1KOwbCDqyYseuYismyDjhtrMT3k,881
|
492
493
|
plexflow/core/torrents/providers/tgx/utils.py,sha256=gUSgKDRcQvCZie2wo6ADYecs_ltHxqhMTAY3mlMmDGE,1813
|
494
|
+
plexflow/core/torrents/providers/tgxi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
495
|
+
plexflow/core/torrents/providers/tgxi/tgxi.py,sha256=_tfUQSsZJuJxUl0fjFUBoHODK89VAGrMtg3D9FAy9QU,746
|
496
|
+
plexflow/core/torrents/providers/tgxi/utils.py,sha256=J3Ee6VW72tdonbOJVC-7Pem3rY1BtuulKbIYCTd_E4U,1435
|
493
497
|
plexflow/core/torrents/providers/therarbg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
494
498
|
plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
|
495
|
-
plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc,sha256=
|
499
|
+
plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc,sha256=mdYm0LUBPyfzzWujScP9lhjjUFoqglIgQmGLdGItzW4,177
|
496
500
|
plexflow/core/torrents/providers/therarbg/__pycache__/extratorrent.cpython-312.pyc,sha256=jFH8XCLnDh4ZNXs_VHoua7yJrOzf4UXE9ocwEvb40uk,1849
|
497
|
-
plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc,sha256=
|
501
|
+
plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc,sha256=A-y2k9Na3Ko4QaBWfHhd0hn8DTT_PDdsIGZm-SCgySE,1732
|
498
502
|
plexflow/core/torrents/providers/therarbg/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
|
499
503
|
plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
|
500
504
|
plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
|
501
505
|
plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
|
502
|
-
plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc,sha256=
|
506
|
+
plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc,sha256=Fr3JmQNQwfvVIlQOOak8I-Ed8upjb5f-tQxqXVKaUpI,3534
|
503
507
|
plexflow/core/torrents/providers/therarbg/therarbg.py,sha256=aG7lbj98jjPJA0L6RAPxHePHfGMxaW8p18lkROQFL2E,798
|
504
508
|
plexflow/core/torrents/providers/therarbg/utils.py,sha256=J3Ee6VW72tdonbOJVC-7Pem3rY1BtuulKbIYCTd_E4U,1435
|
505
509
|
plexflow/core/torrents/providers/torrentquest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
506
510
|
plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
|
507
|
-
plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc,sha256=
|
508
|
-
plexflow/core/torrents/providers/torrentquest/__pycache__/torrentquest.cpython-312.pyc,sha256=
|
511
|
+
plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc,sha256=n3gMuA_5WoX4Z4nqn-RtOeNiU8DOVKRJnulyLTjcCxo,181
|
512
|
+
plexflow/core/torrents/providers/torrentquest/__pycache__/torrentquest.cpython-312.pyc,sha256=QReyyREMFUZN5dtqG7_BweFgR2gW2eUFALmqeDmveIM,1895
|
509
513
|
plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
|
510
514
|
plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
|
511
515
|
plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
|
512
|
-
plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc,sha256=
|
516
|
+
plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc,sha256=t29ZK6G9pRHenI9BWScUOlRPP5ucF__UD3LrLAchqQM,4116
|
513
517
|
plexflow/core/torrents/providers/torrentquest/torrentquest.py,sha256=VxKDfVo9ArkeVuvyWnMR0kCe7REA4SgvLjsZvVN7dNg,925
|
514
518
|
plexflow/core/torrents/providers/torrentquest/utils.py,sha256=RZoJFZpyI-vRDRX-T7tnbeGyb5jdk4UdHyhEgLuwRLM,1664
|
515
519
|
plexflow/core/torrents/providers/tpb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
516
520
|
plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
|
517
|
-
plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc,sha256=
|
521
|
+
plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc,sha256=DG9yNh0oyuZJ4DtCWsVbfKqQaxtIaeeHiKu-PY3taPA,172
|
518
522
|
plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
|
519
|
-
plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc,sha256=
|
523
|
+
plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc,sha256=5ab8EsKdFBcPnaoERfOjX_RxRKFwqDPIp6pBLBZrIew,1500
|
520
524
|
plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
|
521
|
-
plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc,sha256=
|
525
|
+
plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc,sha256=GVi8a1qda_d07qNvSpgCAoCToUUdzyjM5ENxBco2Oek,6474
|
522
526
|
plexflow/core/torrents/providers/tpb/tpb.py,sha256=YB-a3kZ4DUzXkI4TJJszVvoJiX4L0QUJuCo-9iqC6JQ,681
|
523
527
|
plexflow/core/torrents/providers/tpb/utils.py,sha256=M1LdYgMMhFOZ-b12eazCh81tx-KTQMkQ2H21IuhfGOQ,3708
|
524
528
|
plexflow/core/torrents/providers/yts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
525
529
|
plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-311.pyc,sha256=QTE1sD-I-LNDtSuyErNJyVT5WwwI5V4nhk3nzW4c60Q,186
|
526
|
-
plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc,sha256=
|
530
|
+
plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc,sha256=GoGNHNow6hOKAdWwhK9WyHgxNTOEiM7o4Rach-CgzKg,172
|
527
531
|
plexflow/core/torrents/providers/yts/__pycache__/tpb.cpython-311.pyc,sha256=Pgfz7x-ffcY_ygNbwKFsM-BFn_CRVeH3PEm-TZMlj-s,1662
|
528
532
|
plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-311.pyc,sha256=3TI3O9zJmIhY9RL93XgInV0xNnVl0fVQk-fySGGok6k,4241
|
529
|
-
plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc,sha256=
|
533
|
+
plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc,sha256=_bUj5V322ioLgAG0tnDwoUMTWHwT8lbeT_9I_F8CPiY,3796
|
530
534
|
plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-311.pyc,sha256=aLUsam8hsIOlOZ5n4hOA4TlIrst9d94nzuPGwYNNQmc,2725
|
531
|
-
plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc,sha256=
|
535
|
+
plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc,sha256=kVQV_UPW8aVgr2tyJQsGUwagcVc2ez2ErH0C8lr1VnE,2544
|
532
536
|
plexflow/core/torrents/providers/yts/utils.py,sha256=SYV7yohab-gF5Nj67fO8Lkus84-h0OBD3BkIY6U6A1I,1699
|
533
537
|
plexflow/core/torrents/providers/yts/yts.py,sha256=ykwJUm87cJZS2wSe8YKKXncdPNPmIpwtpwtWucCdxWE,1378
|
534
538
|
plexflow/core/torrents/results/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -537,7 +541,7 @@ plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc,sha256=R6gHD
|
|
537
541
|
plexflow/core/torrents/results/__pycache__/torrent.cpython-311.pyc,sha256=SxfylbSxF9gpzXvNey4Fv9XdKLjwm0a0LYlGFhg7zAY,7655
|
538
542
|
plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc,sha256=z8-iig6fvJcqj8R4C77wPLftziDCGuDg0uh_dlq2Qwc,8481
|
539
543
|
plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc,sha256=jnFYw7Glwq9jgyOVTn9yDGWWDCgaM91KZgQmHU16KI8,14162
|
540
|
-
plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc,sha256=
|
544
|
+
plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc,sha256=9XY-YnS0isahhJFhvGU3TUmOB7j0CS4fkMJd04BV2ao,1136
|
541
545
|
plexflow/core/torrents/results/torrent.py,sha256=hSYlP_0Uktumi4wzXqIJ-WRRi5YAlvrZVhf_treXDrI,5203
|
542
546
|
plexflow/core/torrents/results/universal.py,sha256=ycprOMT1Px8IthmB82YhmnxeNt7P3GAcrOlEkpKoaQk,7706
|
543
547
|
plexflow/core/torrents/results/utils.py,sha256=abiiO_QQYDpA5aMyO8WFPxnGu5sL5xfACezE5bwrnJU,691
|
@@ -573,7 +577,7 @@ plexflow/spiders/tgx/spider.py,sha256=fBDksNThRm9bWjvEKeora6eiUKkxQBdISBaYOXIvjg
|
|
573
577
|
plexflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
574
578
|
plexflow/utils/__pycache__/__init__.cpython-311.pyc,sha256=504nnGOR-zQmysuOYNCQZsgbWiSz5kxnIWDWCQqOWnU,164
|
575
579
|
plexflow/utils/__pycache__/__init__.cpython-312.pyc,sha256=je7u5-_Rcwic9Fv9deKonSjBCSx4ytlRJs87KAvLKyk,150
|
576
|
-
plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc,sha256=
|
580
|
+
plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc,sha256=rqnB_01Fb2vePEo7axsDfLNLrqQdFplvBnaPtfFsxIg,8568
|
577
581
|
plexflow/utils/antibot/human_like_requests.py,sha256=-UKo2LgJtgp7CYggxPsUT74vfXyYosdbg5f-DzaEgQU,6116
|
578
582
|
plexflow/utils/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
579
583
|
plexflow/utils/api/__pycache__/__init__.cpython-311.pyc,sha256=h5sUevkaKlWYQz-ECxScMFrE-yT8mYwUQI6CEmHaMe8,168
|
@@ -582,12 +586,12 @@ plexflow/utils/api/context/__pycache__/http.cpython-312.pyc,sha256=US7URBJb5VkC0
|
|
582
586
|
plexflow/utils/api/context/http.py,sha256=TRpEe9_QUEfkVZIMqcAtDJ7Lu5Xl53KyiwBiTHVpbms,4120
|
583
587
|
plexflow/utils/api/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
584
588
|
plexflow/utils/api/rest/__pycache__/__init__.cpython-311.pyc,sha256=WWFZn7TmRF2ToVVOLwB03WIieIZDONWxTGLNPu6Kz-o,173
|
585
|
-
plexflow/utils/api/rest/__pycache__/__init__.cpython-312.pyc,sha256=
|
586
|
-
plexflow/utils/api/rest/__pycache__/antibot_restful.cpython-312.pyc,sha256=
|
587
|
-
plexflow/utils/api/rest/__pycache__/plexful.cpython-312.pyc,sha256
|
589
|
+
plexflow/utils/api/rest/__pycache__/__init__.cpython-312.pyc,sha256=VzXtpbdfDPBTJJiuejTnozRip2Rb8IKEnptjH_pU9gs,159
|
590
|
+
plexflow/utils/api/rest/__pycache__/antibot_restful.cpython-312.pyc,sha256=65gCcN59_E-_CCQjt35FAk_MxX2-uRDQSubGR2-b5j8,3311
|
591
|
+
plexflow/utils/api/rest/__pycache__/plexful.cpython-312.pyc,sha256=G05xdLUP6Wo2yBJ0_ctb2GVmKJHaIf8RRR6KqIYE2UQ,4212
|
588
592
|
plexflow/utils/api/rest/__pycache__/restful.cpython-311.pyc,sha256=0-y7XoIm-MYQj0ZauQmdLlS6H6w5laqEKBsErMkcErE,5502
|
589
|
-
plexflow/utils/api/rest/__pycache__/restful.cpython-312.pyc,sha256=
|
590
|
-
plexflow/utils/api/rest/__pycache__/url_builder.cpython-312.pyc,sha256=
|
593
|
+
plexflow/utils/api/rest/__pycache__/restful.cpython-312.pyc,sha256=UFSmQfdqD59Lq9OsxPHuIR1DW80dkx0G0k-M9rp50N8,3295
|
594
|
+
plexflow/utils/api/rest/__pycache__/url_builder.cpython-312.pyc,sha256=EDukT0MArjYFJbkHQrbTNFlbtlkfDo-FFYc3bDAiULQ,689
|
591
595
|
plexflow/utils/api/rest/antibot_restful.py,sha256=7sxaNsx5jAehyBg1qYfLg45Q_AyijsG8X48_y5oI5Yk,2749
|
592
596
|
plexflow/utils/api/rest/plexful.py,sha256=H9_hm08zpBajLE46E7OJGdTUwWJvFivFbYpzm2U5cVQ,3202
|
593
597
|
plexflow/utils/api/rest/restful.py,sha256=vk7TjRuvXcs4c3MgjU38IPDhVy9GQ2y-WZyJAvEbT88,2405
|
@@ -621,7 +625,7 @@ plexflow/utils/hooks/__pycache__/redis.cpython-312.pyc,sha256=gR1Wu6-9UHfu_Bb9Wh
|
|
621
625
|
plexflow/utils/hooks/http.py,sha256=qyQNAx0RK1XfDgn71SKlxKJ_466j39VgXUEfnw8L9YY,3994
|
622
626
|
plexflow/utils/hooks/postgresql.py,sha256=Ixhw6XNtutXVGPlcYB1g7SJkzHo8EkMPD5XFpZsd5cQ,4002
|
623
627
|
plexflow/utils/hooks/redis.py,sha256=ZvrSgM7s-OgRLIb8uV8rm6XjF40rLkoPOPABEmuKdNk,4228
|
624
|
-
plexflow/utils/image/__pycache__/storage.cpython-312.pyc,sha256=
|
628
|
+
plexflow/utils/image/__pycache__/storage.cpython-312.pyc,sha256=wpDVCg1O9Qnp1VfpaPwRU1LKcGto_VEB2C71L_uZJEU,1579
|
625
629
|
plexflow/utils/image/storage.py,sha256=RlV7D0aGqoG583xP8YCC7TK5YmW8rFff2NwvtOzy5DE,1168
|
626
630
|
plexflow/utils/imdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
627
631
|
plexflow/utils/imdb/__pycache__/__init__.cpython-311.pyc,sha256=Om33PdqDky-6oW50l1mrHRNKJISmC1j9wBn5OdA0Nxs,169
|
@@ -641,17 +645,17 @@ plexflow/utils/retry/__pycache__/utils.cpython-311.pyc,sha256=aMITcG_0hVW031sGoe
|
|
641
645
|
plexflow/utils/retry/__pycache__/utils.cpython-312.pyc,sha256=yYgzVZ7PBvC7qG6CnhLoVmkUm8g77VTzutHm77OOH98,2228
|
642
646
|
plexflow/utils/retry/utils.py,sha256=wqdtkxSBT9dYVgWGKSYxuEiZHBVmfOjzVxXDOweVuoo,1784
|
643
647
|
plexflow/utils/strings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
644
|
-
plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc,sha256=
|
648
|
+
plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc,sha256=atTiIOHRHIt3rlAFmo4TSb0b-4ta85Nw767kksMXTd8,158
|
645
649
|
plexflow/utils/strings/__pycache__/filesize.cpython-311.pyc,sha256=X9fexslLrSygnwySEnqFTN8b7LxF-W_WeVwpxTlf-HM,878
|
646
|
-
plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc,sha256=
|
650
|
+
plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc,sha256=cBx5vnx7qHqfmuuAC54pE1VkO1AWBx-tgJ6wPQvfAzA,1871
|
647
651
|
plexflow/utils/strings/__pycache__/json_extract.cpython-312.pyc,sha256=LE-dU05XzIsJRC6iQh1LodV2dcA0rWcgUktxRGCq76U,14966
|
648
|
-
plexflow/utils/strings/__pycache__/language.cpython-312.pyc,sha256=
|
649
|
-
plexflow/utils/strings/__pycache__/sanitize.cpython-312.pyc,sha256=
|
652
|
+
plexflow/utils/strings/__pycache__/language.cpython-312.pyc,sha256=RBsfDrWFmGydji7sauH2iWswv6NqXs_qDT-lsp513hU,560
|
653
|
+
plexflow/utils/strings/__pycache__/sanitize.cpython-312.pyc,sha256=al-VD4Gphby-bd-En36L1wjcK1LCrrOMxFGN-XrmS4w,599
|
650
654
|
plexflow/utils/strings/filesize.py,sha256=mLVd0xqIEzAif5Tn_PyCddFmUPXPNnEbLhBNJTsgOvs,1547
|
651
655
|
plexflow/utils/strings/json_extract.py,sha256=590oY1LMnbe9COm3fD6z74OtOzxeXd3Hrf06afhHOvc,14884
|
652
656
|
plexflow/utils/strings/language.py,sha256=J9-wqmCdxf9Ws5_X1tV4vX4d7AGkKci0eaBE4Lit0j0,269
|
653
657
|
plexflow/utils/strings/sanitize.py,sha256=V-58iC4-0xIb-dgK595JbPNyyB9jZbY1xHMazXnQyuI,274
|
654
|
-
plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc,sha256=
|
658
|
+
plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc,sha256=RiMTyALG74DJn67xhCvZ2ofXBOTyetMOU3Tq_bVdbts,3554
|
655
659
|
plexflow/utils/subtitle/search.py,sha256=HW_JOrj-cpRrVnxWh56XjRWhb98E73V1V5QHCq2y7CM,2441
|
656
660
|
plexflow/utils/tasks/__pycache__/decorators.cpython-311.pyc,sha256=8zuAsEfYLEBQQ4DGKqkx-JFCjd73kGhAiPblBNFa2cQ,1675
|
657
661
|
plexflow/utils/tasks/__pycache__/tasks.cpython-311.pyc,sha256=8RRMTHAy-t6yW0rlDX9wpZyO-9Cg4SQoD-NVasL94SQ,1670
|
@@ -663,25 +667,28 @@ plexflow/utils/thread_safe/safe_list.py,sha256=BScIH27Gh84Nb7SZxmfeZ9vF2hh75yCml
|
|
663
667
|
plexflow/utils/thread_safe/safe_set.py,sha256=wTlR3RK6QShRFdij1-HOT2YUAtONivySQ1wfWRL-7pU,1844
|
664
668
|
plexflow/utils/torrent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
665
669
|
plexflow/utils/torrent/__pycache__/__init__.cpython-311.pyc,sha256=nWgaKrMbrQpiPPcpuHy-B-TAMwt8w5iofUZ2ba2SRss,172
|
666
|
-
plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc,sha256=
|
670
|
+
plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc,sha256=o3dvDnTCgvMrnZhFYAcZi73nOeGap4LAD8b7HjDWWb8,158
|
667
671
|
plexflow/utils/torrent/__pycache__/analyze.cpython-312.pyc,sha256=bkmS6HF05DdGSuZHpr-K3n0ncsooMqUzrUbNpTMS3Zo,6926
|
668
|
-
plexflow/utils/torrent/__pycache__/files.cpython-312.pyc,sha256=
|
672
|
+
plexflow/utils/torrent/__pycache__/files.cpython-312.pyc,sha256=S4-DaMpZ37kVsLj41X-2dhgVR07ulmZDKq6qrQ7DemM,3928
|
669
673
|
plexflow/utils/torrent/__pycache__/hash.cpython-311.pyc,sha256=RDp8Sv5NLkUw0r6w6JD8rOH1ksN3NnTv4DzhZuZBouA,2284
|
670
|
-
plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc,sha256=
|
674
|
+
plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc,sha256=WopjMrIXzIakvSpjMBokBArQ8j7Yy4cu0yXdMITdU2k,3619
|
671
675
|
plexflow/utils/torrent/analyze.py,sha256=4f71sz1JZSgOAFdJY31dHomFNCUPlyxft7P3ffrWroU,4902
|
672
|
-
plexflow/utils/torrent/
|
673
|
-
plexflow/utils/torrent/
|
674
|
-
plexflow/utils/torrent/extract/__pycache__/
|
675
|
-
plexflow/utils/torrent/extract/__pycache__/
|
676
|
+
plexflow/utils/torrent/compare/__pycache__/with_subtitles.cpython-312.pyc,sha256=2XV3manUcmu9gi6V9bsYv96hFclpxIbX4xkHzyTkvag,3554
|
677
|
+
plexflow/utils/torrent/compare/with_subtitles.py,sha256=7qT8E7utesCCLqyObFlctbJkD6g8ijlXfeTfm5Ei2xY,2835
|
678
|
+
plexflow/utils/torrent/extract/__pycache__/common.cpython-312.pyc,sha256=r0g2SaOUKmtQVIM89z6BpUXI0SEMYvGX_HmBQoezWn0,1872
|
679
|
+
plexflow/utils/torrent/extract/__pycache__/ext.cpython-312.pyc,sha256=Xkuv_NW2TReyiekSGgL_Az_B42fWyuGsZN5lbgOlAxM,272178
|
680
|
+
plexflow/utils/torrent/extract/__pycache__/extratorrent.cpython-312.pyc,sha256=MgzrUiRepe3xY0EbdyXv368fLM-1HM2mcXTQs4Bdo_4,3442
|
681
|
+
plexflow/utils/torrent/extract/__pycache__/piratesparadise.cpython-312.pyc,sha256=bJTs7wN0cVm_iBviuLbWi1ecT0USM4GJP_ky9peNUjg,2621
|
676
682
|
plexflow/utils/torrent/extract/__pycache__/tgx.cpython-312.pyc,sha256=rH61J6FQJZ97FC8ZwEDKNwU6lYOMenU1QvDYAD-bEwM,4659
|
677
|
-
plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc,sha256=
|
678
|
-
plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc,sha256=
|
683
|
+
plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc,sha256=gkOguMpZqK0whTPBLamoljYVBZ6gXvyau3Rbv4Y5JF8,7872
|
684
|
+
plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc,sha256=Hwax3WNMFF0NS2z0JbA2HPhY2L-3ges6QLx5j9g2wZM,7866
|
679
685
|
plexflow/utils/torrent/extract/common.py,sha256=DtEe7aUfE96pwWnVl0aUOlRBq2ps36tEfealFZp70hg,1216
|
680
686
|
plexflow/utils/torrent/extract/ext.py,sha256=3jmBfR1zL8XgdhR1BVZWRmH7TN68gFcX5K799bjwN0o,271641
|
681
687
|
plexflow/utils/torrent/extract/extratorrent.py,sha256=G_PlvT1CcMiq96q3BMsSwMg-BEjD3kp0IBB6up8zoK4,2339
|
682
688
|
plexflow/utils/torrent/extract/kat.py,sha256=-pQND_1forno9wn5w-Kua7PJFjKpDH_HcYvMIOJ8kA0,91269
|
683
689
|
plexflow/utils/torrent/extract/piratesparadise.py,sha256=yAlMDRdtmAZvHlo-rvMNDZEkH4HCyXDe_DMhV5SATNM,1912
|
684
690
|
plexflow/utils/torrent/extract/tgx.py,sha256=EMvuK5LcuukTaDgTsSU-9fP4vYDU931957JnyLnhCcY,3223
|
691
|
+
plexflow/utils/torrent/extract/tgxi.py,sha256=wkqlPKqfhBcdMyH1wzxIWq1CSLYrAqvSVSb39JDC884,2068
|
685
692
|
plexflow/utils/torrent/extract/therarbg.py,sha256=q97dJCmpnzKJcrhlOwOWx-ovMCk5qVY1HCXa4RAvrao,6527
|
686
693
|
plexflow/utils/torrent/extract/torrentquest.py,sha256=gQn9GanFM5SXvpwjcyRu0XgTZ23KTJ_FeHIsanGl2WI,6868
|
687
694
|
plexflow/utils/torrent/files.py,sha256=XJxvFedZQb8H-wSzNIZI_2nUOT-pqr6MwgYcoty0yA0,2285
|
@@ -697,7 +704,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
|
|
697
704
|
plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
|
698
705
|
plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
|
699
706
|
plexflow/utils/video/subtitle.py,sha256=qPvvBjlPj0fynJJvGJgGeKt9ey26R-cF6EoLaYt9iXU,1333
|
700
|
-
plexflow-0.0.
|
701
|
-
plexflow-0.0.
|
702
|
-
plexflow-0.0.
|
703
|
-
plexflow-0.0.
|
707
|
+
plexflow-0.0.120.dist-info/METADATA,sha256=mgWquex8fayOpHr1-9Pyzsg4mLAy2_UFhZ5JvaCxIvU,3140
|
708
|
+
plexflow-0.0.120.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
709
|
+
plexflow-0.0.120.dist-info/entry_points.txt,sha256=9RJC3ikOQORHNOn573EdwJOBUnFU_4EGHbtNUM5pjjY,1557
|
710
|
+
plexflow-0.0.120.dist-info/RECORD,,
|
@@ -22,6 +22,7 @@ redis_hook=scripts.redis.redis_hook:main
|
|
22
22
|
refresh=scripts.plex.library.refresh:main
|
23
23
|
schedule=scripts.downloads.qbit.schedule:main
|
24
24
|
subscribe_hello_world=scripts.kafka.subscribe_hello_world:main
|
25
|
+
subtitle_compare=scripts.torrents.subtitle_comparison:main
|
25
26
|
tgx_context=scripts.torrents.tgx_context:main
|
26
27
|
tgx_spider=scripts.spiders.tgx_spider:main
|
27
28
|
torrentquest=scripts.torrents.torrentquest:main
|
File without changes
|