plexflow 0.0.119__py3-none-any.whl → 0.0.121__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.
Files changed (62) hide show
  1. plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc +0 -0
  2. plexflow/core/downloads/candidates/rank/__pycache__/ranking.cpython-312.pyc +0 -0
  3. plexflow/core/downloads/candidates/rank/__pycache__/utils.cpython-312.pyc +0 -0
  4. plexflow/core/metadata/providers/plex/datatypes.py +19 -19
  5. plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc +0 -0
  6. plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc +0 -0
  7. plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-312.pyc +0 -0
  8. plexflow/core/torrents/providers/ext/__pycache__/ext.cpython-312.pyc +0 -0
  9. plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc +0 -0
  10. plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-312.pyc +0 -0
  11. plexflow/core/torrents/providers/extratorrent/__pycache__/extratorrent.cpython-312.pyc +0 -0
  12. plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc +0 -0
  13. plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc +0 -0
  14. plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc +0 -0
  15. plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc +0 -0
  16. plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-312.pyc +0 -0
  17. plexflow/core/torrents/providers/snowfl/__pycache__/snowfl.cpython-312.pyc +0 -0
  18. plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc +0 -0
  19. plexflow/core/torrents/providers/tgxi/__init__.py +0 -0
  20. plexflow/core/torrents/providers/tgxi/tgxi.py +16 -0
  21. plexflow/core/torrents/providers/tgxi/utils.py +61 -0
  22. plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc +0 -0
  23. plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc +0 -0
  24. plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc +0 -0
  25. plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc +0 -0
  26. plexflow/core/torrents/providers/torrentquest/__pycache__/torrentquest.cpython-312.pyc +0 -0
  27. plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc +0 -0
  28. plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc +0 -0
  29. plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc +0 -0
  30. plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc +0 -0
  31. plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc +0 -0
  32. plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc +0 -0
  33. plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc +0 -0
  34. plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc +0 -0
  35. plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc +0 -0
  36. plexflow/utils/api/rest/__pycache__/__init__.cpython-312.pyc +0 -0
  37. plexflow/utils/api/rest/__pycache__/antibot_restful.cpython-312.pyc +0 -0
  38. plexflow/utils/api/rest/__pycache__/plexful.cpython-312.pyc +0 -0
  39. plexflow/utils/api/rest/__pycache__/restful.cpython-312.pyc +0 -0
  40. plexflow/utils/api/rest/__pycache__/url_builder.cpython-312.pyc +0 -0
  41. plexflow/utils/image/__pycache__/storage.cpython-312.pyc +0 -0
  42. plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc +0 -0
  43. plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc +0 -0
  44. plexflow/utils/strings/__pycache__/language.cpython-312.pyc +0 -0
  45. plexflow/utils/strings/__pycache__/sanitize.cpython-312.pyc +0 -0
  46. plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc +0 -0
  47. plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc +0 -0
  48. plexflow/utils/torrent/__pycache__/files.cpython-312.pyc +0 -0
  49. plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc +0 -0
  50. plexflow/utils/torrent/compare/__pycache__/with_subtitles.cpython-312.pyc +0 -0
  51. plexflow/utils/torrent/compare/with_subtitles.py +89 -0
  52. plexflow/utils/torrent/extract/__pycache__/common.cpython-312.pyc +0 -0
  53. plexflow/utils/torrent/extract/__pycache__/ext.cpython-312.pyc +0 -0
  54. plexflow/utils/torrent/extract/__pycache__/extratorrent.cpython-312.pyc +0 -0
  55. plexflow/utils/torrent/extract/__pycache__/piratesparadise.cpython-312.pyc +0 -0
  56. plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc +0 -0
  57. plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc +0 -0
  58. plexflow/utils/torrent/extract/tgxi.py +64 -0
  59. {plexflow-0.0.119.dist-info → plexflow-0.0.121.dist-info}/METADATA +2 -6
  60. {plexflow-0.0.119.dist-info → plexflow-0.0.121.dist-info}/RECORD +62 -56
  61. {plexflow-0.0.119.dist-info → plexflow-0.0.121.dist-info}/entry_points.txt +1 -0
  62. {plexflow-0.0.119.dist-info → plexflow-0.0.121.dist-info}/WHEEL +0 -0
@@ -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
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
@@ -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}")
@@ -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.119
3
+ Version: 0.0.121
4
4
  Summary: A short description of the package.
5
5
  License: MIT
6
6
  Keywords: keyword1,keyword2,keyword3
@@ -24,18 +24,16 @@ Requires-Dist: bitmath (>=1.3.3.1,<2.0.0.0)
24
24
  Requires-Dist: brotli (>=1.1.0,<2.0.0)
25
25
  Requires-Dist: cloudinary (>=1.41.0,<2.0.0)
26
26
  Requires-Dist: cloudscraper (>=1.2.71,<2.0.0)
27
- Requires-Dist: cohere (>=5.5.0,<6.0.0)
28
27
  Requires-Dist: dataclasses-json (>=0.6.4,<0.7.0)
29
28
  Requires-Dist: dateparser (>=1.2.0,<2.0.0)
30
29
  Requires-Dist: fake-useragent (>=1.4.0,<2.0.0)
31
30
  Requires-Dist: google-cloud-pubsub (>=2.28.0,<3.0.0)
32
- Requires-Dist: groq (>=0.9.0,<0.10.0)
31
+ Requires-Dist: google-genai (>=1.26.0,<2.0.0)
33
32
  Requires-Dist: html5lib (>=1.1,<2.0)
34
33
  Requires-Dist: humanfriendly (>=10.0,<11.0)
35
34
  Requires-Dist: iso639-lang (>=2.2.3,<3.0.0)
36
35
  Requires-Dist: json-repair (>=0.19.1,<0.20.0)
37
36
  Requires-Dist: kafka (>=1.3.5,<2.0.0)
38
- Requires-Dist: langchain-groq (>=0.1.9,<0.2.0)
39
37
  Requires-Dist: langcodes (>=3.4.0,<4.0.0)
40
38
  Requires-Dist: langdetect (>=1.0.9,<2.0.0)
41
39
  Requires-Dist: lxml (>=5.1.0,<6.0.0)
@@ -48,7 +46,6 @@ Requires-Dist: plexapi (==4.15.9)
48
46
  Requires-Dist: psycopg2-binary (>=2.9.9,<3.0.0)
49
47
  Requires-Dist: pyautogui (>=0.9.54,<0.10.0)
50
48
  Requires-Dist: pydantic (>=2.6.1,<3.0.0)
51
- Requires-Dist: pyngrok (>=7.1.6,<8.0.0)
52
49
  Requires-Dist: pysrt (>=1.1.2,<2.0.0)
53
50
  Requires-Dist: python-ffmpeg (>=2.0.10,<3.0.0)
54
51
  Requires-Dist: python-ulid (>=2.7.0,<3.0.0)
@@ -59,7 +56,6 @@ Requires-Dist: requests (>=2.25.1,<3.0.0)
59
56
  Requires-Dist: retrying (>=1.3.4,<2.0.0)
60
57
  Requires-Dist: scrapy (>=2.11.2,<3.0.0)
61
58
  Requires-Dist: seleniumbase (>=4.28.4,<5.0.0)
62
- Requires-Dist: stable-ts (>=2.19.0,<3.0.0)
63
59
  Requires-Dist: tmdbsimple (>=2.9.1,<3.0.0)
64
60
  Requires-Dist: tpblite (>=0.8.0,<0.9.0)
65
61
  Requires-Dist: tvdb-v4-official (>=1.1.0,<2.0.0)
@@ -68,11 +68,11 @@ plexflow/core/downloads/__pycache__/__init__.cpython-312.pyc,sha256=soaT0G2pvzN6
68
68
  plexflow/core/downloads/candidates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  plexflow/core/downloads/candidates/__pycache__/__init__.cpython-312.pyc,sha256=rukNX00PSteBonRk-cayzNRk17ypWfE4noOAR3Ibjn0,170
70
70
  plexflow/core/downloads/candidates/__pycache__/download_candidate.cpython-312.pyc,sha256=6qCk-6nvWxTczY0G7FbY_tQ2xOqllQrVdROnm_IdkBg,9573
71
- plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc,sha256=Jwoj7R4TFzjoXc3uq_Wps3WitzFE9K_miKp9XuT_l8Y,2079
71
+ plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc,sha256=siHmGpfFms4ImysVqDU50VLzRt24E2tDyhJb2O6xwok,2199
72
72
  plexflow/core/downloads/candidates/download_candidate.py,sha256=6lQbtNw8uGr5B8qrkOOCxxvCKGHvFoEq8JjHGNB5FN8,5989
73
73
  plexflow/core/downloads/candidates/filtered.py,sha256=HgUY0S3aWAeHASHTjND9hyjCtGNLhUzLOL90G2CDxKg,1842
74
- plexflow/core/downloads/candidates/rank/__pycache__/ranking.cpython-312.pyc,sha256=Wz8hGAtLZNT0ThAPwloLBek5wflI6DKFDhr5_b7TzPI,4045
75
- plexflow/core/downloads/candidates/rank/__pycache__/utils.cpython-312.pyc,sha256=5Q6q1kw62WCWlPVFpXgXYt6oqf2gWHK_DHaZ-CBADwk,426
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
76
76
  plexflow/core/downloads/candidates/rank/ranking.py,sha256=p86f3DQmXJNE53gPk9E5RcKA7dgXI4wPQsIh9ae1uxY,2490
77
77
  plexflow/core/downloads/candidates/rank/utils.py,sha256=R4Ai4KmZRONo9vd2rf32DdGxVkANHYFwSjrO5WVjX9U,100
78
78
  plexflow/core/downloads/candidates/utils.py,sha256=BnuDSRjU9mVYSh9ejKgfvlLi0bWEqc07uLyskC-bYhw,1874
@@ -221,7 +221,7 @@ plexflow/core/metadata/providers/plex/__pycache__/moviemeter.cpython-311.pyc,sha
221
221
  plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-311.pyc,sha256=FgbspEc3m5Vkm_m9Ry7gVAavs_2-4Er4FIREdJgaDIQ,8182
222
222
  plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-312.pyc,sha256=GKjYqAdmiDSuAQ3HlsQJMRAHfi65sbw7maeLcuq6rbs,7334
223
223
  plexflow/core/metadata/providers/plex/__pycache__/tmdb.cpython-311.pyc,sha256=vWlpw_-ldSWwFvz67kTwxK9XxZPy7iExyLgD6rTOf10,4200
224
- plexflow/core/metadata/providers/plex/datatypes.py,sha256=Gj081fk2DkK9QHUjIS0oxUQllEpjBGohrc1utM2M48I,32023
224
+ plexflow/core/metadata/providers/plex/datatypes.py,sha256=-PSBCSyR5sfA2TOFCAr5mlnfSMngz8OaEjcc51CCw_U,32441
225
225
  plexflow/core/metadata/providers/plex/plex.py,sha256=KrOjSLzeZVIGDnLDC7dw87Yizq5h3Fbf9MtPv_tcET8,5918
226
226
  plexflow/core/metadata/providers/tmdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
227
  plexflow/core/metadata/providers/tmdb/__pycache__/__init__.cpython-311.pyc,sha256=djXYmvhVt2MFuzdiZ7ojQCXMa9UffVv_j_hBl0bdIvM,187
@@ -397,7 +397,7 @@ plexflow/core/torrents/analyzers/analyzed_torrent.py,sha256=gsAr5RjYVXozWUaP3zSh
397
397
  plexflow/core/torrents/analyzers/analyzer.py,sha256=-KqZpwrrQpu5Aqt94plO5fUr1RQOOdCzKb1dT5P1SoE,1358
398
398
  plexflow/core/torrents/analyzers/torrentquest/__pycache__/analyzer.cpython-312.pyc,sha256=NpoTFmZEWD7_49Qdbr4_CsvIn5F0uOjls-uWa3hgodY,2759
399
399
  plexflow/core/torrents/analyzers/torrentquest/analyzer.py,sha256=f2X3CcYBA9xYZ6kRLkGQ5YK5feXjsw229z5nLWUHMEI,1907
400
- plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc,sha256=d5aPkRYG0-_RD82MvWPwuNRCsbK75jk_Wl84cwjqS3A,2503
400
+ plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc,sha256=9lJlAtKIDRoxpxvCL_oazLZCPhAW1Lh26soE-tZMVVk,2503
401
401
  plexflow/core/torrents/auto/auto_providers/auto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
402
402
  plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-311.pyc,sha256=qCFNPGmwyRmmvaF4ox321aGG3j1ix-HTZg8LA5kr0QE,197
403
403
  plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc,sha256=vaXlU_2wadR_q6ZWmjygCqx4BjjtyYaHXzC5fD6CI1w,185
@@ -416,28 +416,28 @@ plexflow/core/torrents/auto/auto_providers/tpb/torrent.py,sha256=8X2i75s3sI9rGcT
416
416
  plexflow/core/torrents/auto/auto_torrents.py,sha256=Raal3-ZK30o8hOvQrwiWYmiQy7zYkFcKTLi4wQi4K7k,1721
417
417
  plexflow/core/torrents/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
418
418
  plexflow/core/torrents/providers/__pycache__/__init__.cpython-311.pyc,sha256=8u9BzsXTcFt1MeuWCG0TjlyZaO7NJjsSfx_OUByR5rE,182
419
- plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc,sha256=XGXMvMUUeVRElhD7NGGsnvEsyrbrbsHzrvEZzjgieR0,170
419
+ plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc,sha256=z6zgerdghp5H7HSd9hi6ZdF3AVAFE92_eITQtdobJyI,168
420
420
  plexflow/core/torrents/providers/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
421
421
  plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
422
- plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-312.pyc,sha256=tRPyKIiMaWCA243aIesMVGCsKEU4-KMb7AvnJGMZiXw,174
423
- plexflow/core/torrents/providers/ext/__pycache__/ext.cpython-312.pyc,sha256=pNmm6zirodr_463HRaOZFODS6vdv1XZY6n1MtyOZHDg,1706
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
424
424
  plexflow/core/torrents/providers/ext/__pycache__/extratorrent.cpython-312.pyc,sha256=jFH8XCLnDh4ZNXs_VHoua7yJrOzf4UXE9ocwEvb40uk,1849
425
425
  plexflow/core/torrents/providers/ext/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
426
426
  plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
427
427
  plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
428
428
  plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
429
- plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc,sha256=sNtplG2Wc5nGmZTojTsCa_I7a0MlgfpPMcXy-SKFhvI,3524
429
+ plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc,sha256=Op0KvfCw-d2uiTyUJSgk6F4ZPqArWTldkeMta9PMvGM,3522
430
430
  plexflow/core/torrents/providers/ext/ext.py,sha256=P_cg14aRlX4MyMZnI4j8bxFH4JnNkow0-wO2Ye9a9-s,759
431
431
  plexflow/core/torrents/providers/ext/utils.py,sha256=5luyin-_yCSxMtlx1W0DAKZaCAyKnBdvfpRmKojvTI4,1445
432
432
  plexflow/core/torrents/providers/extratorrent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
433
433
  plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
434
- plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-312.pyc,sha256=HRZfW465DGa-74uaxBbVmkw8KImGCvqPb7rJcgM6ef8,183
435
- plexflow/core/torrents/providers/extratorrent/__pycache__/extratorrent.cpython-312.pyc,sha256=bzGwh7KQysN7ZcKfNwWizXA8qX2Vkur4MToSZ1DzOzI,1849
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
436
436
  plexflow/core/torrents/providers/extratorrent/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
437
437
  plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
438
438
  plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
439
439
  plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
440
- plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc,sha256=Qs7pVnEBZ_KEMEyKwg2-dzTMj5Q_YIg5yYUC7G8PcNM,3962
440
+ plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc,sha256=o6wntAM0FQhr7XMQIaA5WOkvsm-IikFEgLnVzsUQ6SU,3960
441
441
  plexflow/core/torrents/providers/extratorrent/extratorrent.py,sha256=eKfomcjs41jxQfttX7Qwd6b-wmpZ3S4rCcsU_sewtDo,895
442
442
  plexflow/core/torrents/providers/extratorrent/utils.py,sha256=9D0-0Lr6R6gdQb2rsGcSYOqrvt8vlcoLN0GedjumSnk,1608
443
443
  plexflow/core/torrents/providers/eztv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -449,15 +449,15 @@ plexflow/core/torrents/providers/eztv/eztv.py,sha256=VG_l6UjDztkl-pokmkLuqKsY2Gm
449
449
  plexflow/core/torrents/providers/eztv/utils.py,sha256=JaXyqGA0Zc0BhuoC75JkKy4PmN3AO4E-817_BkSY6J4,2850
450
450
  plexflow/core/torrents/providers/piratesparadise/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
451
451
  plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
452
- plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc,sha256=POQn-sb7PYiQiZZz1tPsPsexwX5PWhCfoXCfK0Tu1IQ,184
452
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc,sha256=_I4DbnxABDb3t3qVG6v8Wqv-KMndvKLvKimCnzlBPzc,184
453
453
  plexflow/core/torrents/providers/piratesparadise/__pycache__/extratorrent.cpython-312.pyc,sha256=jFH8XCLnDh4ZNXs_VHoua7yJrOzf4UXE9ocwEvb40uk,1849
454
- plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc,sha256=MvQpzbjdWV_Uhr-WrCh0ykDFdWhPhqDFu_Cs6Eqf2K4,1878
454
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc,sha256=GJQDccj_-84AOSNpkyCgn46ZmomzRuIEcWhSQq1vOEs,1878
455
455
  plexflow/core/torrents/providers/piratesparadise/__pycache__/therarbg.cpython-312.pyc,sha256=EuY35TKrVDa6nz3JrVqRGURM9AOFZKeX1DPaHIGn5yo,1732
456
456
  plexflow/core/torrents/providers/piratesparadise/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
457
457
  plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
458
458
  plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
459
459
  plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
460
- plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc,sha256=IrcVcSYpD4mAn21gja6_3ULB0Kt_JUd3ZTX7piLmNRc,3447
460
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc,sha256=IskKRx7fzF6aIm1vhrUH2RlqsVugV0OW4V_WT26BoAE,3543
461
461
  plexflow/core/torrents/providers/piratesparadise/piratesparadise.py,sha256=p0V00VKDKijf3B63yVaea2YdRLLIkJAOpPVhTKPglDc,929
462
462
  plexflow/core/torrents/providers/piratesparadise/utils.py,sha256=XIFQZT15e4rOjiI71uPvXPiEz2tNHAZg4jU1hrlrupU,1459
463
463
  plexflow/core/torrents/providers/rarbg2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -471,11 +471,11 @@ plexflow/core/torrents/providers/rarbg2/rarbg2.py,sha256=SZ9EPO78XQFa6AoajJWy93M
471
471
  plexflow/core/torrents/providers/rarbg2/utils.py,sha256=7M96ilgkfMssOhSvB99SgM9Dfgf1sqXEYtzw1I7SCw4,1854
472
472
  plexflow/core/torrents/providers/snowfl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
473
473
  plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-311.pyc,sha256=QTE1sD-I-LNDtSuyErNJyVT5WwwI5V4nhk3nzW4c60Q,186
474
- plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-312.pyc,sha256=XRkusYu2_fmo1Ne15aAO_4oRXCp3bexYalgf6RB9HqM,177
475
- plexflow/core/torrents/providers/snowfl/__pycache__/snowfl.cpython-312.pyc,sha256=XfaEbGTQbqo6UUDrlw840Pu5sQ4LZymC1vjnpAQ7fxY,2194
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
476
476
  plexflow/core/torrents/providers/snowfl/__pycache__/tpb.cpython-311.pyc,sha256=Pgfz7x-ffcY_ygNbwKFsM-BFn_CRVeH3PEm-TZMlj-s,1662
477
477
  plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-311.pyc,sha256=3TI3O9zJmIhY9RL93XgInV0xNnVl0fVQk-fySGGok6k,4241
478
- plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc,sha256=b9ALJDafcJVYNKOo7X_33A8Unh4nipJxL1Ej63Y9fE4,3604
478
+ plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc,sha256=lJ3bN9isXhSXM9i2fqOwYv2rpSqXQiAFZSscwB4Er74,3602
479
479
  plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-311.pyc,sha256=aLUsam8hsIOlOZ5n4hOA4TlIrst9d94nzuPGwYNNQmc,2725
480
480
  plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-312.pyc,sha256=WLnag2fiEWBRNDRNY_OIAlZvwQd2Sdg5jX-C_Dxx38M,2245
481
481
  plexflow/core/torrents/providers/snowfl/snowfl.py,sha256=PNizfDcJkbeNpmXuw3I1SlTsgRFj9z9zZDxwblDYFAg,1200
@@ -491,45 +491,48 @@ plexflow/core/torrents/providers/tgx/context.py,sha256=qXllx-laicYXqE2tDwcJf8W-l
491
491
  plexflow/core/torrents/providers/tgx/dump.py,sha256=F9VdUyTT4BnQ7V-ESTAg7rWD4iPoUVg1ufzBWw7dIFw,1356
492
492
  plexflow/core/torrents/providers/tgx/tgx.py,sha256=nt5dIcCrDsF91zds1KOwbCDqyYseuYismyDjhtrMT3k,881
493
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
494
497
  plexflow/core/torrents/providers/therarbg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
495
498
  plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
496
- plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc,sha256=_tTm40Tz_WBnwBkVix3dciR2_jLmeNTmIh3GkGE9nkU,179
499
+ plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc,sha256=mdYm0LUBPyfzzWujScP9lhjjUFoqglIgQmGLdGItzW4,177
497
500
  plexflow/core/torrents/providers/therarbg/__pycache__/extratorrent.cpython-312.pyc,sha256=jFH8XCLnDh4ZNXs_VHoua7yJrOzf4UXE9ocwEvb40uk,1849
498
- plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc,sha256=EuY35TKrVDa6nz3JrVqRGURM9AOFZKeX1DPaHIGn5yo,1732
501
+ plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc,sha256=A-y2k9Na3Ko4QaBWfHhd0hn8DTT_PDdsIGZm-SCgySE,1732
499
502
  plexflow/core/torrents/providers/therarbg/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
500
503
  plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
501
504
  plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
502
505
  plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
503
- plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc,sha256=Q-1HJKH_SvVAm1asHGOKZlk5fSr14Yfo3WgUVBLTq50,3534
506
+ plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc,sha256=Fr3JmQNQwfvVIlQOOak8I-Ed8upjb5f-tQxqXVKaUpI,3534
504
507
  plexflow/core/torrents/providers/therarbg/therarbg.py,sha256=aG7lbj98jjPJA0L6RAPxHePHfGMxaW8p18lkROQFL2E,798
505
508
  plexflow/core/torrents/providers/therarbg/utils.py,sha256=J3Ee6VW72tdonbOJVC-7Pem3rY1BtuulKbIYCTd_E4U,1435
506
509
  plexflow/core/torrents/providers/torrentquest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
507
510
  plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
508
- plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc,sha256=sJs2uYlRHhsGNMKpx24zgNI4OTABqLx6wbDovosUIK4,183
509
- plexflow/core/torrents/providers/torrentquest/__pycache__/torrentquest.cpython-312.pyc,sha256=Utuzs9uPVADuX8-6f4vKrlkpLHdkAYNcZ5I-tVNctho,1899
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
510
513
  plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
511
514
  plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
512
515
  plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
513
- plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc,sha256=63qIdPGOxmvKu0GbgguAIHnXRgIH-eWsbViQetOWe7I,4118
516
+ plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc,sha256=t29ZK6G9pRHenI9BWScUOlRPP5ucF__UD3LrLAchqQM,4116
514
517
  plexflow/core/torrents/providers/torrentquest/torrentquest.py,sha256=VxKDfVo9ArkeVuvyWnMR0kCe7REA4SgvLjsZvVN7dNg,925
515
518
  plexflow/core/torrents/providers/torrentquest/utils.py,sha256=RZoJFZpyI-vRDRX-T7tnbeGyb5jdk4UdHyhEgLuwRLM,1664
516
519
  plexflow/core/torrents/providers/tpb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
517
520
  plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
518
- plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc,sha256=TnrE5JwLd86J6Imssuc2QAXHDdlAEDI-4x-9wN8Ha58,174
521
+ plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc,sha256=DG9yNh0oyuZJ4DtCWsVbfKqQaxtIaeeHiKu-PY3taPA,172
519
522
  plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
520
- plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc,sha256=MAp1JprHh9oeFLKRNGOqyytN12g0ZdUSdF6TwJ9MDCs,1504
523
+ plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc,sha256=5ab8EsKdFBcPnaoERfOjX_RxRKFwqDPIp6pBLBZrIew,1500
521
524
  plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
522
- plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc,sha256=cJSN6zMizHkzh3_WWJ2uF4bZ6_svJSQnN296iP8YJv4,6378
525
+ plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc,sha256=GVi8a1qda_d07qNvSpgCAoCToUUdzyjM5ENxBco2Oek,6474
523
526
  plexflow/core/torrents/providers/tpb/tpb.py,sha256=YB-a3kZ4DUzXkI4TJJszVvoJiX4L0QUJuCo-9iqC6JQ,681
524
527
  plexflow/core/torrents/providers/tpb/utils.py,sha256=M1LdYgMMhFOZ-b12eazCh81tx-KTQMkQ2H21IuhfGOQ,3708
525
528
  plexflow/core/torrents/providers/yts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
526
529
  plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-311.pyc,sha256=QTE1sD-I-LNDtSuyErNJyVT5WwwI5V4nhk3nzW4c60Q,186
527
- plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc,sha256=rb26jCjKRY0RXaanm-6RLAFANV4e4DwgUPbZcsCw-gc,174
530
+ plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc,sha256=GoGNHNow6hOKAdWwhK9WyHgxNTOEiM7o4Rach-CgzKg,172
528
531
  plexflow/core/torrents/providers/yts/__pycache__/tpb.cpython-311.pyc,sha256=Pgfz7x-ffcY_ygNbwKFsM-BFn_CRVeH3PEm-TZMlj-s,1662
529
532
  plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-311.pyc,sha256=3TI3O9zJmIhY9RL93XgInV0xNnVl0fVQk-fySGGok6k,4241
530
- plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc,sha256=1Gjye9P-7NHVZuVVHnnGgEgWcJXuGX8LDv9OjSKdYwU,3798
533
+ plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc,sha256=_bUj5V322ioLgAG0tnDwoUMTWHwT8lbeT_9I_F8CPiY,3796
531
534
  plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-311.pyc,sha256=aLUsam8hsIOlOZ5n4hOA4TlIrst9d94nzuPGwYNNQmc,2725
532
- plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc,sha256=C0rvBQVDBiYjJijszL2Bhzwsny4tYp9QVuXoJEHkNso,2544
535
+ plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc,sha256=kVQV_UPW8aVgr2tyJQsGUwagcVc2ez2ErH0C8lr1VnE,2544
533
536
  plexflow/core/torrents/providers/yts/utils.py,sha256=SYV7yohab-gF5Nj67fO8Lkus84-h0OBD3BkIY6U6A1I,1699
534
537
  plexflow/core/torrents/providers/yts/yts.py,sha256=ykwJUm87cJZS2wSe8YKKXncdPNPmIpwtpwtWucCdxWE,1378
535
538
  plexflow/core/torrents/results/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -538,7 +541,7 @@ plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc,sha256=R6gHD
538
541
  plexflow/core/torrents/results/__pycache__/torrent.cpython-311.pyc,sha256=SxfylbSxF9gpzXvNey4Fv9XdKLjwm0a0LYlGFhg7zAY,7655
539
542
  plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc,sha256=z8-iig6fvJcqj8R4C77wPLftziDCGuDg0uh_dlq2Qwc,8481
540
543
  plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc,sha256=jnFYw7Glwq9jgyOVTn9yDGWWDCgaM91KZgQmHU16KI8,14162
541
- plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc,sha256=vqEt3jQLzZ-K_E9WV0kKz4K79AScvcg2xyOUTlAcu70,1136
544
+ plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc,sha256=9XY-YnS0isahhJFhvGU3TUmOB7j0CS4fkMJd04BV2ao,1136
542
545
  plexflow/core/torrents/results/torrent.py,sha256=hSYlP_0Uktumi4wzXqIJ-WRRi5YAlvrZVhf_treXDrI,5203
543
546
  plexflow/core/torrents/results/universal.py,sha256=ycprOMT1Px8IthmB82YhmnxeNt7P3GAcrOlEkpKoaQk,7706
544
547
  plexflow/core/torrents/results/utils.py,sha256=abiiO_QQYDpA5aMyO8WFPxnGu5sL5xfACezE5bwrnJU,691
@@ -574,7 +577,7 @@ plexflow/spiders/tgx/spider.py,sha256=fBDksNThRm9bWjvEKeora6eiUKkxQBdISBaYOXIvjg
574
577
  plexflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
575
578
  plexflow/utils/__pycache__/__init__.cpython-311.pyc,sha256=504nnGOR-zQmysuOYNCQZsgbWiSz5kxnIWDWCQqOWnU,164
576
579
  plexflow/utils/__pycache__/__init__.cpython-312.pyc,sha256=je7u5-_Rcwic9Fv9deKonSjBCSx4ytlRJs87KAvLKyk,150
577
- plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc,sha256=6fzUFt9uCeAKkPvA1QVz_miu2Fa-XiZMjpgY8VFp0kM,8593
580
+ plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc,sha256=rqnB_01Fb2vePEo7axsDfLNLrqQdFplvBnaPtfFsxIg,8568
578
581
  plexflow/utils/antibot/human_like_requests.py,sha256=-UKo2LgJtgp7CYggxPsUT74vfXyYosdbg5f-DzaEgQU,6116
579
582
  plexflow/utils/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
580
583
  plexflow/utils/api/__pycache__/__init__.cpython-311.pyc,sha256=h5sUevkaKlWYQz-ECxScMFrE-yT8mYwUQI6CEmHaMe8,168
@@ -583,12 +586,12 @@ plexflow/utils/api/context/__pycache__/http.cpython-312.pyc,sha256=US7URBJb5VkC0
583
586
  plexflow/utils/api/context/http.py,sha256=TRpEe9_QUEfkVZIMqcAtDJ7Lu5Xl53KyiwBiTHVpbms,4120
584
587
  plexflow/utils/api/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
585
588
  plexflow/utils/api/rest/__pycache__/__init__.cpython-311.pyc,sha256=WWFZn7TmRF2ToVVOLwB03WIieIZDONWxTGLNPu6Kz-o,173
586
- plexflow/utils/api/rest/__pycache__/__init__.cpython-312.pyc,sha256=VY5JN7ymAqZREdHbrZKg7o2WxL-VqTu-APTwN2hilkY,161
587
- plexflow/utils/api/rest/__pycache__/antibot_restful.cpython-312.pyc,sha256=PWfUYxzzIdqv05l6Rfmhi580qZR5Gv3GPuAzbX670eQ,3313
588
- plexflow/utils/api/rest/__pycache__/plexful.cpython-312.pyc,sha256=-Ccbo9-8SqrFcCGvsN7QFMX6vdE3wW0__ZMIt7Ne3Ak,4214
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
589
592
  plexflow/utils/api/rest/__pycache__/restful.cpython-311.pyc,sha256=0-y7XoIm-MYQj0ZauQmdLlS6H6w5laqEKBsErMkcErE,5502
590
- plexflow/utils/api/rest/__pycache__/restful.cpython-312.pyc,sha256=3Tbim-DHZEObecV1nrWd5MzqacRKX3u4ckAcUo4V8js,3297
591
- plexflow/utils/api/rest/__pycache__/url_builder.cpython-312.pyc,sha256=yIAzRvU7CciuadY5TWiUqwkddU5zbxkneXav2Zc8WHQ,691
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
592
595
  plexflow/utils/api/rest/antibot_restful.py,sha256=7sxaNsx5jAehyBg1qYfLg45Q_AyijsG8X48_y5oI5Yk,2749
593
596
  plexflow/utils/api/rest/plexful.py,sha256=H9_hm08zpBajLE46E7OJGdTUwWJvFivFbYpzm2U5cVQ,3202
594
597
  plexflow/utils/api/rest/restful.py,sha256=vk7TjRuvXcs4c3MgjU38IPDhVy9GQ2y-WZyJAvEbT88,2405
@@ -622,7 +625,7 @@ plexflow/utils/hooks/__pycache__/redis.cpython-312.pyc,sha256=gR1Wu6-9UHfu_Bb9Wh
622
625
  plexflow/utils/hooks/http.py,sha256=qyQNAx0RK1XfDgn71SKlxKJ_466j39VgXUEfnw8L9YY,3994
623
626
  plexflow/utils/hooks/postgresql.py,sha256=Ixhw6XNtutXVGPlcYB1g7SJkzHo8EkMPD5XFpZsd5cQ,4002
624
627
  plexflow/utils/hooks/redis.py,sha256=ZvrSgM7s-OgRLIb8uV8rm6XjF40rLkoPOPABEmuKdNk,4228
625
- plexflow/utils/image/__pycache__/storage.cpython-312.pyc,sha256=PuYT0whsl53o7lLLoQcSQUI-JidJ6HbqRbznEQAcEUo,1581
628
+ plexflow/utils/image/__pycache__/storage.cpython-312.pyc,sha256=wpDVCg1O9Qnp1VfpaPwRU1LKcGto_VEB2C71L_uZJEU,1579
626
629
  plexflow/utils/image/storage.py,sha256=RlV7D0aGqoG583xP8YCC7TK5YmW8rFff2NwvtOzy5DE,1168
627
630
  plexflow/utils/imdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
628
631
  plexflow/utils/imdb/__pycache__/__init__.cpython-311.pyc,sha256=Om33PdqDky-6oW50l1mrHRNKJISmC1j9wBn5OdA0Nxs,169
@@ -642,17 +645,17 @@ plexflow/utils/retry/__pycache__/utils.cpython-311.pyc,sha256=aMITcG_0hVW031sGoe
642
645
  plexflow/utils/retry/__pycache__/utils.cpython-312.pyc,sha256=yYgzVZ7PBvC7qG6CnhLoVmkUm8g77VTzutHm77OOH98,2228
643
646
  plexflow/utils/retry/utils.py,sha256=wqdtkxSBT9dYVgWGKSYxuEiZHBVmfOjzVxXDOweVuoo,1784
644
647
  plexflow/utils/strings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
645
- plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc,sha256=p5hP2pQNNaFqWyYwsecCOSQJdXi6qwTw6gZmPPxjx_E,160
648
+ plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc,sha256=atTiIOHRHIt3rlAFmo4TSb0b-4ta85Nw767kksMXTd8,158
646
649
  plexflow/utils/strings/__pycache__/filesize.cpython-311.pyc,sha256=X9fexslLrSygnwySEnqFTN8b7LxF-W_WeVwpxTlf-HM,878
647
- plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc,sha256=rwweeoyPPod9hRAf7ZGbNXi5W8z-sxXQryXrnRql9JQ,1878
650
+ plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc,sha256=cBx5vnx7qHqfmuuAC54pE1VkO1AWBx-tgJ6wPQvfAzA,1871
648
651
  plexflow/utils/strings/__pycache__/json_extract.cpython-312.pyc,sha256=LE-dU05XzIsJRC6iQh1LodV2dcA0rWcgUktxRGCq76U,14966
649
- plexflow/utils/strings/__pycache__/language.cpython-312.pyc,sha256=KmJqMsvEJaR2yqeFb4jy6Ha3h4VSDbmhwVlGYKojcps,562
650
- plexflow/utils/strings/__pycache__/sanitize.cpython-312.pyc,sha256=fRcOYMIZxmik87gtVCWNr_RBl07TY1qBlEIPGvwNSf4,599
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
651
654
  plexflow/utils/strings/filesize.py,sha256=mLVd0xqIEzAif5Tn_PyCddFmUPXPNnEbLhBNJTsgOvs,1547
652
655
  plexflow/utils/strings/json_extract.py,sha256=590oY1LMnbe9COm3fD6z74OtOzxeXd3Hrf06afhHOvc,14884
653
656
  plexflow/utils/strings/language.py,sha256=J9-wqmCdxf9Ws5_X1tV4vX4d7AGkKci0eaBE4Lit0j0,269
654
657
  plexflow/utils/strings/sanitize.py,sha256=V-58iC4-0xIb-dgK595JbPNyyB9jZbY1xHMazXnQyuI,274
655
- plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc,sha256=VFulOf14P0m9ncFRxXwENemR8wNolA8xZykpfdAq4eg,3542
658
+ plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc,sha256=RiMTyALG74DJn67xhCvZ2ofXBOTyetMOU3Tq_bVdbts,3554
656
659
  plexflow/utils/subtitle/search.py,sha256=HW_JOrj-cpRrVnxWh56XjRWhb98E73V1V5QHCq2y7CM,2441
657
660
  plexflow/utils/tasks/__pycache__/decorators.cpython-311.pyc,sha256=8zuAsEfYLEBQQ4DGKqkx-JFCjd73kGhAiPblBNFa2cQ,1675
658
661
  plexflow/utils/tasks/__pycache__/tasks.cpython-311.pyc,sha256=8RRMTHAy-t6yW0rlDX9wpZyO-9Cg4SQoD-NVasL94SQ,1670
@@ -664,25 +667,28 @@ plexflow/utils/thread_safe/safe_list.py,sha256=BScIH27Gh84Nb7SZxmfeZ9vF2hh75yCml
664
667
  plexflow/utils/thread_safe/safe_set.py,sha256=wTlR3RK6QShRFdij1-HOT2YUAtONivySQ1wfWRL-7pU,1844
665
668
  plexflow/utils/torrent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
666
669
  plexflow/utils/torrent/__pycache__/__init__.cpython-311.pyc,sha256=nWgaKrMbrQpiPPcpuHy-B-TAMwt8w5iofUZ2ba2SRss,172
667
- plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc,sha256=Mcrkp8qZ6zSdhdJdYbUfnEGJFySd8hayoOQEewLeFbE,160
670
+ plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc,sha256=o3dvDnTCgvMrnZhFYAcZi73nOeGap4LAD8b7HjDWWb8,158
668
671
  plexflow/utils/torrent/__pycache__/analyze.cpython-312.pyc,sha256=bkmS6HF05DdGSuZHpr-K3n0ncsooMqUzrUbNpTMS3Zo,6926
669
- plexflow/utils/torrent/__pycache__/files.cpython-312.pyc,sha256=s0TsS5xH_R1iit2PseyDlLspXwt37Ll_PN932l4fBQo,3930
672
+ plexflow/utils/torrent/__pycache__/files.cpython-312.pyc,sha256=S4-DaMpZ37kVsLj41X-2dhgVR07ulmZDKq6qrQ7DemM,3928
670
673
  plexflow/utils/torrent/__pycache__/hash.cpython-311.pyc,sha256=RDp8Sv5NLkUw0r6w6JD8rOH1ksN3NnTv4DzhZuZBouA,2284
671
- plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc,sha256=jlbSscMzvGQkHDBP-zB3JB8DMRenvzSRIiOKprFhYQQ,3631
674
+ plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc,sha256=WopjMrIXzIakvSpjMBokBArQ8j7Yy4cu0yXdMITdU2k,3619
672
675
  plexflow/utils/torrent/analyze.py,sha256=4f71sz1JZSgOAFdJY31dHomFNCUPlyxft7P3ffrWroU,4902
673
- plexflow/utils/torrent/extract/__pycache__/common.cpython-312.pyc,sha256=WTgyNFyySpFEtklNMsrhdvngA_ap8AAY-5-QPHVtxfM,1862
674
- plexflow/utils/torrent/extract/__pycache__/ext.cpython-312.pyc,sha256=qRVyjKJFb5P5wGETuI05oqUxUaKvNMzBpk8jB7sHk1E,272185
675
- plexflow/utils/torrent/extract/__pycache__/extratorrent.cpython-312.pyc,sha256=a08Mno5zwRLr5VQTzF5OFskW5cHt5kKdhJbxQRqWzF4,3448
676
- plexflow/utils/torrent/extract/__pycache__/piratesparadise.cpython-312.pyc,sha256=waiUKJht8KLl40FvbF1Sgspqx1dxckV7Sa4Ft4sQfgw,2621
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
677
682
  plexflow/utils/torrent/extract/__pycache__/tgx.cpython-312.pyc,sha256=rH61J6FQJZ97FC8ZwEDKNwU6lYOMenU1QvDYAD-bEwM,4659
678
- plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc,sha256=cPovyLOodqJbjr14ROsBBhRQzRjp9KT0dC_WHb3tZCU,7889
679
- plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc,sha256=hOpCw3fSf5GPYxZnOv9VEW1RzsnFzTfHH5wK5ubbp3Y,7880
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
680
685
  plexflow/utils/torrent/extract/common.py,sha256=DtEe7aUfE96pwWnVl0aUOlRBq2ps36tEfealFZp70hg,1216
681
686
  plexflow/utils/torrent/extract/ext.py,sha256=3jmBfR1zL8XgdhR1BVZWRmH7TN68gFcX5K799bjwN0o,271641
682
687
  plexflow/utils/torrent/extract/extratorrent.py,sha256=G_PlvT1CcMiq96q3BMsSwMg-BEjD3kp0IBB6up8zoK4,2339
683
688
  plexflow/utils/torrent/extract/kat.py,sha256=-pQND_1forno9wn5w-Kua7PJFjKpDH_HcYvMIOJ8kA0,91269
684
689
  plexflow/utils/torrent/extract/piratesparadise.py,sha256=yAlMDRdtmAZvHlo-rvMNDZEkH4HCyXDe_DMhV5SATNM,1912
685
690
  plexflow/utils/torrent/extract/tgx.py,sha256=EMvuK5LcuukTaDgTsSU-9fP4vYDU931957JnyLnhCcY,3223
691
+ plexflow/utils/torrent/extract/tgxi.py,sha256=wkqlPKqfhBcdMyH1wzxIWq1CSLYrAqvSVSb39JDC884,2068
686
692
  plexflow/utils/torrent/extract/therarbg.py,sha256=q97dJCmpnzKJcrhlOwOWx-ovMCk5qVY1HCXa4RAvrao,6527
687
693
  plexflow/utils/torrent/extract/torrentquest.py,sha256=gQn9GanFM5SXvpwjcyRu0XgTZ23KTJ_FeHIsanGl2WI,6868
688
694
  plexflow/utils/torrent/files.py,sha256=XJxvFedZQb8H-wSzNIZI_2nUOT-pqr6MwgYcoty0yA0,2285
@@ -698,7 +704,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
698
704
  plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
699
705
  plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
700
706
  plexflow/utils/video/subtitle.py,sha256=qPvvBjlPj0fynJJvGJgGeKt9ey26R-cF6EoLaYt9iXU,1333
701
- plexflow-0.0.119.dist-info/METADATA,sha256=GfzyAhubItgqL_NBauP7ANbZNmvFiqhdpD_vsnIN1Hc,3094
702
- plexflow-0.0.119.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
703
- plexflow-0.0.119.dist-info/entry_points.txt,sha256=SSLjrLcZa2880346VUIsCG9vcLsquf-RTX9pkdNaTO8,1498
704
- plexflow-0.0.119.dist-info/RECORD,,
707
+ plexflow-0.0.121.dist-info/METADATA,sha256=revPz61WKs0k_YYETv_QwQXZbteKEPkIn34fULP8tJ0,2933
708
+ plexflow-0.0.121.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
709
+ plexflow-0.0.121.dist-info/entry_points.txt,sha256=9RJC3ikOQORHNOn573EdwJOBUnFU_4EGHbtNUM5pjjY,1557
710
+ plexflow-0.0.121.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