plexflow 0.0.74__py3-none-any.whl → 0.0.76__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 +2 -0
- plexflow/core/context/partials/candidates.py +15 -0
- plexflow/core/context/partials/universal_torrents.py +23 -0
- plexflow/core/downloads/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/downloads/candidates/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/downloads/candidates/__pycache__/download_candidate.cpython-312.pyc +0 -0
- plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-312.pyc +0 -0
- plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-312.pyc +0 -0
- plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-312.pyc +0 -0
- plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-312.pyc +0 -0
- plexflow/core/subtitles/providers/oss/oss_subtitle.py +6 -1
- plexflow/core/subtitles/providers/oss/unlimited_oss.py +1 -0
- plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-312.pyc +0 -0
- plexflow/core/subtitles/results/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/subtitles/results/__pycache__/subtitle.cpython-312.pyc +0 -0
- plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc +0 -0
- plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc +0 -0
- plexflow/core/torrents/results/universal.py +16 -1
- {plexflow-0.0.74.dist-info → plexflow-0.0.76.dist-info}/METADATA +1 -1
- {plexflow-0.0.74.dist-info → plexflow-0.0.76.dist-info}/RECORD +23 -13
- {plexflow-0.0.74.dist-info → plexflow-0.0.76.dist-info}/entry_points.txt +1 -0
- {plexflow-0.0.74.dist-info → plexflow-0.0.76.dist-info}/WHEEL +0 -0
@@ -8,3 +8,5 @@ from plexflow.core.context.partials.tgx_context import TgxRequestContext
|
|
8
8
|
from plexflow.core.context.partials.tgx_batch import TgxBatch
|
9
9
|
from plexflow.core.context.partials.reports import TorrentAnalysisReports
|
10
10
|
from plexflow.core.context.partials.subtitles import Subtitles
|
11
|
+
from plexflow.core.context.partials.universal_torrents import UniversalTorrents
|
12
|
+
from plexflow.core.context.partials.candidates import Candidates
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from plexflow.core.context.partial_context import PartialContext
|
2
|
+
from plexflow.core.downloads.candidates.download_candidate import DownloadCandidate
|
3
|
+
from typing import List
|
4
|
+
|
5
|
+
class Candidates(PartialContext):
|
6
|
+
def __init__(self, **kwargs) -> None:
|
7
|
+
super().__init__(**kwargs)
|
8
|
+
|
9
|
+
def all(self) -> List[DownloadCandidate]:
|
10
|
+
return self.get("download/candidates")
|
11
|
+
|
12
|
+
def update(self, candidates: List[DownloadCandidate]):
|
13
|
+
if len(candidates) == 0:
|
14
|
+
return
|
15
|
+
self.set("download/candidates", candidates)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
from plexflow.core.context.partial_context import PartialContext
|
2
|
+
from datetime import datetime as dt
|
3
|
+
from plexflow.core.torrents.results.universal import UniversalTorrent
|
4
|
+
from typing import List
|
5
|
+
|
6
|
+
class UniversalTorrents(PartialContext):
|
7
|
+
def __init__(self, **kwargs) -> None:
|
8
|
+
super().__init__(**kwargs)
|
9
|
+
|
10
|
+
@property
|
11
|
+
def sources(self) -> list[str]:
|
12
|
+
keys = self.get_keys("universal/torrents/*")
|
13
|
+
# extract the source from the key
|
14
|
+
return [key.split("/")[-1] for key in keys]
|
15
|
+
|
16
|
+
def from_source(self, source: str) -> List[UniversalTorrent]:
|
17
|
+
return self.get(f"universal/torrents/{source}")
|
18
|
+
|
19
|
+
def update(self, torrents: List[UniversalTorrent]):
|
20
|
+
if len(torrents) == 0:
|
21
|
+
return
|
22
|
+
source = next(iter(torrents)).source
|
23
|
+
self.set(f"universal/torrents/{source}", torrents)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,6 +1,7 @@
|
|
1
1
|
from plexflow.core.subtitles.providers.oss.utils.responses import Subtitle
|
2
2
|
from datetime import datetime
|
3
3
|
from plexflow.utils.imdb.imdb_codes import IMDbCode
|
4
|
+
import PTN
|
4
5
|
|
5
6
|
class OSSSubtitle(Subtitle):
|
6
7
|
def __init__(self, subtitle: Subtitle):
|
@@ -10,7 +11,11 @@ class OSSSubtitle(Subtitle):
|
|
10
11
|
@property
|
11
12
|
def release_name(self) -> str:
|
12
13
|
return self.subtitle.release
|
13
|
-
|
14
|
+
|
15
|
+
@property
|
16
|
+
def parsed_release_name(self) -> str:
|
17
|
+
return PTN.parse(self.release_name)
|
18
|
+
|
14
19
|
@property
|
15
20
|
def uploader(self) -> str:
|
16
21
|
return self.subtitle.uploader_name
|
@@ -84,6 +84,7 @@ class OpenSubtitlesManager:
|
|
84
84
|
Returns:
|
85
85
|
OpenSubtitlesManager: The created instance of the OpenSubtitlesManager class.
|
86
86
|
"""
|
87
|
+
print("YAML:", yaml_file)
|
87
88
|
with open(yaml_file, 'r') as file:
|
88
89
|
credentials = yaml.safe_load(file)
|
89
90
|
return cls(credentials=credentials, r=r, **kwargs)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -185,7 +185,22 @@ class UniversalTorrent:
|
|
185
185
|
Returns:
|
186
186
|
bool: True if the universal torrent is compatible with the subtitle, False otherwise.
|
187
187
|
"""
|
188
|
-
|
188
|
+
torrent_parsed_release_names = [t.parsed_release_name for t in self.torrents]
|
189
|
+
subtitle_parsed_release_name = s.parsed_release_name
|
190
|
+
|
191
|
+
if any(s.release_name.lower().strip() == t.release_name.lower().strip() for t in self.torrents):
|
192
|
+
return True
|
193
|
+
elif any(subtitle_parsed_release_name.get('encoder', 'NO_ENCODER_SUBTITLE').strip().lower() == parsed_release_name.get('encoder', 'NO_ENCODER_TORRENT').strip().lower() for parsed_release_name in torrent_parsed_release_names):
|
194
|
+
return True
|
195
|
+
elif any((subtitle_parsed_release_name.get('encoder', 'NO_ENCODER_SUBTITLE').strip().lower() in parsed_release_name.get('encoder', 'NO_ENCODER_TORRENT').strip().lower()
|
196
|
+
or parsed_release_name.get('encoder', 'NO_ENCODER_TORRENT').strip().lower() in subtitle_parsed_release_name.get('encoder', 'NO_ENCODER_SUBTITLE').strip().lower())
|
197
|
+
for parsed_release_name in torrent_parsed_release_names):
|
198
|
+
return True
|
199
|
+
# check for YTS
|
200
|
+
elif 'yts' in s.release_name.strip().lower() and any('yts' in t.release_name.lower().strip() for t in self.torrents):
|
201
|
+
return True
|
202
|
+
|
203
|
+
return False
|
189
204
|
|
190
205
|
def __eq__(self, other):
|
191
206
|
"""
|
@@ -20,11 +20,12 @@ 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=Ptad0ZLRgE0FPIJlYzPIGCtrOlxU1mJzScaXzENlgY8,2010
|
23
|
-
plexflow/core/context/partials/__init__.py,sha256=
|
23
|
+
plexflow/core/context/partials/__init__.py,sha256=oLSaTaAGejMIB1DtBg8xaXUbA3qK43zv48-k0HWxhjI,764
|
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
|
27
27
|
plexflow/core/context/partials/cache.py,sha256=1QQ6yP69wqJiacuc2idhHsXpyUUCqavqgLk25wQB_tI,508
|
28
|
+
plexflow/core/context/partials/candidates.py,sha256=0YiMUxITmJ9c37EtlLua9E5ghqrHH2lIPFyVFIcJ15s,543
|
28
29
|
plexflow/core/context/partials/context.py,sha256=pFzpAFxwCJdqPuhXJqhs6j4Xyvf0GQtzPRMmL4fcjEA,314
|
29
30
|
plexflow/core/context/partials/ids.py,sha256=QoQ6FbX1OIWrE-iuz-G6kSzBlTt1_I1jyfl2JgKge2o,913
|
30
31
|
plexflow/core/context/partials/movie.py,sha256=VXQ2SspFgGSRgDefg4VlHrH2fns3KRuKlU72ps6527o,3861
|
@@ -33,6 +34,7 @@ plexflow/core/context/partials/subtitles.py,sha256=Eax0rdGeTqEHkt9KNiyv097X3I1Dr
|
|
33
34
|
plexflow/core/context/partials/tgx_batch.py,sha256=TduB09oBOQ8CtmPYsHIeNe7AI-ypKw21zQAX-7qktEs,859
|
34
35
|
plexflow/core/context/partials/tgx_context.py,sha256=_FuhOvKsFqi_uynHxgC9_QIR2CfYmz-uJCRFtGFJmXI,1641
|
35
36
|
plexflow/core/context/partials/torrents.py,sha256=U6tjdsH0qIPwe9b7XZ5ChNIos68WEKn9VgCQe0A8MQ0,772
|
37
|
+
plexflow/core/context/partials/universal_torrents.py,sha256=YVykoSo61D_8_jLd6XgwWZ4Gy6sOzhIjTpJsyvPHxuE,846
|
36
38
|
plexflow/core/context/partials/watchlist.py,sha256=XL4H3AXHhyuhuImm3OBfrOmlc9rMvVhBJJGumQijM-c,1108
|
37
39
|
plexflow/core/context/plexflow_context.py,sha256=_Le01owaf_0hW6BwMCvMKrKX0IRHyWGWGYTzxCWmdSE,904
|
38
40
|
plexflow/core/context/plexflow_property.py,sha256=9eLjyHlfKKUhFo_zRwUIq_QaAGE6An4B8_HOxVJbeUo,1169
|
@@ -58,7 +60,11 @@ plexflow/core/context/watchlist/__pycache__/__init__.cpython-311.pyc,sha256=iwUR
|
|
58
60
|
plexflow/core/context/watchlist/__pycache__/context.cpython-311.pyc,sha256=NbmRe6tzqI4BljIUesvFYaMUfYdXkVHz68SwAQCBtxg,2640
|
59
61
|
plexflow/core/context/watchlist/context.py,sha256=_JKr1tddYLD6gemKelj_LB5t-pev_6SUIaQnl1tPX8c,1548
|
60
62
|
plexflow/core/downloads/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
63
|
+
plexflow/core/downloads/__pycache__/__init__.cpython-312.pyc,sha256=zUMxgNLYel7bBvNKnVb_QBn5GPVNLTKQn2do3Ra5gEU,159
|
61
64
|
plexflow/core/downloads/candidates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
65
|
+
plexflow/core/downloads/candidates/__pycache__/__init__.cpython-312.pyc,sha256=kt2qFZ_JTsQjlaiDAeQN7-TwVB4oXGVLUGCC5ataZ8Y,170
|
66
|
+
plexflow/core/downloads/candidates/__pycache__/download_candidate.cpython-312.pyc,sha256=SG09qzDMYM-bFFkLxU-S3nynDzI6Bxn5xBfpE_rZ-Hw,9142
|
67
|
+
plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc,sha256=Jwoj7R4TFzjoXc3uq_Wps3WitzFE9K_miKp9XuT_l8Y,2079
|
62
68
|
plexflow/core/downloads/candidates/download_candidate.py,sha256=KlW4GhAbp2hhDuoAphuFj3uweJE4LjwRvUNe-R7h-es,5819
|
63
69
|
plexflow/core/downloads/candidates/filtered.py,sha256=HgUY0S3aWAeHASHTjND9hyjCtGNLhUzLOL90G2CDxKg,1842
|
64
70
|
plexflow/core/downloads/candidates/utils.py,sha256=ahI6bvk7CHT_O0BEXsd7FtC180Swlt9Phj6_op1mhYA,1777
|
@@ -302,29 +308,29 @@ plexflow/core/subtitles/providers/__pycache__/__init__.cpython-311.pyc,sha256=2z
|
|
302
308
|
plexflow/core/subtitles/providers/__pycache__/__init__.cpython-312.pyc,sha256=gp9rHSu09WohhuFlVII26NTnqB9maGtEsjc8rKQ7pvo,171
|
303
309
|
plexflow/core/subtitles/providers/__pycache__/auto_subtiltes.cpython-311.pyc,sha256=Coddhp2j6Ay3oA1H5qQEHbn1qqpBLrHaINC8K-TaZqI,3857
|
304
310
|
plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-311.pyc,sha256=BEiGR-WcFPy0Lp4bgA8ykjs081bpT5m0L3sqy6Kqfdg,3893
|
305
|
-
plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-312.pyc,sha256=
|
311
|
+
plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-312.pyc,sha256=_hAilgddUB2JPMtU6TREs9hACj_F-MgcVfMKtK65BUU,3463
|
306
312
|
plexflow/core/subtitles/providers/auto_subtitles.py,sha256=lq7pEBBkrrkVjieB7uPs89v-SDlrOGbMhUzkA0pzii0,2200
|
307
313
|
plexflow/core/subtitles/providers/oss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
308
314
|
plexflow/core/subtitles/providers/oss/__pycache__/__init__.cpython-311.pyc,sha256=fisyzWOS6ZR67F7A-k7WEaapRbm2h0mapOixVKgavqs,187
|
309
315
|
plexflow/core/subtitles/providers/oss/__pycache__/__init__.cpython-312.pyc,sha256=H2fhQnTvVsfRSfrDSReYATGTisbG-QEA6P-AHi8y-1U,175
|
310
316
|
plexflow/core/subtitles/providers/oss/__pycache__/datatypes.cpython-311.pyc,sha256=wCE0qHCaISXvsiDdrakvfbW8_Fww3JeG8ep2wmfwgQ4,8771
|
311
317
|
plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-311.pyc,sha256=qyfLK7z1Yb0r5aM8KvPLeu0P1hflX5zqHEvfLtmF_hw,3733
|
312
|
-
plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-312.pyc,sha256=
|
318
|
+
plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-312.pyc,sha256=sG-imk-qM-JFhKtphS0tLPTACdBhw7atgFiKmunkkAE,3380
|
313
319
|
plexflow/core/subtitles/providers/oss/__pycache__/oss.cpython-311.pyc,sha256=tbcGIfaslOGnfjwoko8TSKIGRRO4sM86Gbmy7OG9occ,21609
|
314
320
|
plexflow/core/subtitles/providers/oss/__pycache__/oss.cpython-312.pyc,sha256=UXRE-8qiUAEkB55aYFtWb7WL8jHXozdIDGHZWkyQKRM,19694
|
315
321
|
plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-311.pyc,sha256=IfUEII4Khd7b4vs1Ag73irbmoulk1f9uKOX9xI0vtlo,2396
|
316
|
-
plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-312.pyc,sha256=
|
322
|
+
plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-312.pyc,sha256=VBhKFDlVJlfe_Hn0J44d73WGoJjNXUhYvWCz1O1_Mx0,2576
|
317
323
|
plexflow/core/subtitles/providers/oss/__pycache__/search.cpython-311.pyc,sha256=Hb6ZX9B0wjeOvOMNaw-eZnPBITsINQ3Cs8cYebq-dKs,3038
|
318
324
|
plexflow/core/subtitles/providers/oss/__pycache__/search.cpython-312.pyc,sha256=nSqaXHXI1Fe9mncp492AhLr444SMze-6QrZkdz94wr8,2662
|
319
325
|
plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-311.pyc,sha256=OUvBlMRcl1mDpT9UnhZl9g9YZgfJj5Y8Gff2oIto1V8,12587
|
320
|
-
plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-312.pyc,sha256=
|
326
|
+
plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-312.pyc,sha256=UUbEBl2ixwwSvXoDaG5kfo8Um-I58o10GHZHP6eCNGE,11756
|
321
327
|
plexflow/core/subtitles/providers/oss/datatypes.py,sha256=7YvjS8a3riEJ4yqLKzTRv5g6vftcrcoYKGcBoq0MCLo,3620
|
322
328
|
plexflow/core/subtitles/providers/oss/download.py,sha256=xEnmslFQnHhk8gDw35ePDGF-MZo47UUvivpHFhCzhsM,2121
|
323
329
|
plexflow/core/subtitles/providers/oss/old.py,sha256=IoZ7iIRs3FoxxJgzGrgMGNJpVXqZ3aAaadjKJJ3Lw0o,5566
|
324
330
|
plexflow/core/subtitles/providers/oss/oss.py,sha256=m0UGVMs50-et8_RfYCOOJXPDRabBZOW8UyLiPeq83AQ,15921
|
325
|
-
plexflow/core/subtitles/providers/oss/oss_subtitle.py,sha256=
|
331
|
+
plexflow/core/subtitles/providers/oss/oss_subtitle.py,sha256=HTsOUxBxFtqF4Ds-C7ZSOTTcypvK26Hpibsh0UMOjoM,987
|
326
332
|
plexflow/core/subtitles/providers/oss/search.py,sha256=VKMVgaZ67Juxlvf7IRqpo1QYKVKAaJg8Zhj-NQhjoy0,1865
|
327
|
-
plexflow/core/subtitles/providers/oss/unlimited_oss.py,sha256=
|
333
|
+
plexflow/core/subtitles/providers/oss/unlimited_oss.py,sha256=6ysiAElC4nuiqNJY233Kgd172RVm3584ReXrPd6Wtz4,9596
|
328
334
|
plexflow/core/subtitles/providers/oss/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
329
335
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/__init__.cpython-311.pyc,sha256=nBHOv53UkuFjaPU3Zih_W5tvdRYEmZOeySSrsa3qsGo,193
|
330
336
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/__init__.cpython-312.pyc,sha256=nWQpxGf6NgdB_p8RS6e0DO4jYZ9h8xjAc8GGiJUs8wk,181
|
@@ -339,7 +345,7 @@ plexflow/core/subtitles/providers/oss/utils/__pycache__/file_utils.cpython-312.p
|
|
339
345
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/languages.cpython-311.pyc,sha256=0k4-Lqv1r5D3ZNxeo-xGbyLLFM_ZRvDheuO-WZtnP_s,2788
|
340
346
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/languages.cpython-312.pyc,sha256=rY8WBgZ40MSUZvvoFMsVm5aZcB64UGWXtlu5ZCKUGvc,2734
|
341
347
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-311.pyc,sha256=Xf9Lx6enEAsRsU1tBeNyR7E-TVJimX9C0V5qNYjJsL8,11167
|
342
|
-
plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-312.pyc,sha256=
|
348
|
+
plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-312.pyc,sha256=FU7rAhL1o_uO3ipIAnZxcg9Tq3u86Tr18IUY6wQbb5w,9992
|
343
349
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/responses.cpython-311.pyc,sha256=I1CDautiTgrgGU-SdCxemjszBHhq85lxIMVBdfOOUDs,14585
|
344
350
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/responses.cpython-312.pyc,sha256=9dCyif_w_KUPIfjlysUfQ4WIZwoYwVTxMasfqXSBhKU,12499
|
345
351
|
plexflow/core/subtitles/providers/oss/utils/__pycache__/srt.cpython-311.pyc,sha256=bp8nzSZkZ_751NHl6wiT5wFTO9R-WaZkaqHmON9FfXY,23929
|
@@ -353,7 +359,9 @@ plexflow/core/subtitles/providers/oss/utils/response_base.py,sha256=APjsR4OqYrKe
|
|
353
359
|
plexflow/core/subtitles/providers/oss/utils/responses.py,sha256=QRTjZymSn3EWqMjteXy1apRtNDKej614D2YB1_m_v2c,7954
|
354
360
|
plexflow/core/subtitles/providers/oss/utils/srt.py,sha256=riEuy9_1m4kZEu-Ey8bgvQUfr5ce0_Nu95GFe6Qh_u8,21041
|
355
361
|
plexflow/core/subtitles/results/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
362
|
+
plexflow/core/subtitles/results/__pycache__/__init__.cpython-312.pyc,sha256=KSV9si5eK6ydXfjkOjJ24xK5kKeQYbw2_s38n-48Gvo,167
|
356
363
|
plexflow/core/subtitles/results/__pycache__/subtitle.cpython-311.pyc,sha256=CjeZEPM8DrolKN7eIIHM2kEN3gdc90yhdZssUN0ImdY,6400
|
364
|
+
plexflow/core/subtitles/results/__pycache__/subtitle.cpython-312.pyc,sha256=p61FniRetRyEVqFapGtGt_r_8ldHG30XNyEl7iYx7wM,5984
|
357
365
|
plexflow/core/subtitles/results/subtitle.py,sha256=1_xeg_l93b-gWRJEKrOSA8k1OlNOfJgotFWWsfgiUvM,3852
|
358
366
|
plexflow/core/torrents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
359
367
|
plexflow/core/torrents/__pycache__/__init__.cpython-311.pyc,sha256=Ak5TvWroVnHx7z-S-hqYzBrZyP5axDM85dpaSb4yI3o,172
|
@@ -491,8 +499,10 @@ plexflow/core/torrents/results/__pycache__/__init__.cpython-311.pyc,sha256=FJHx4
|
|
491
499
|
plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc,sha256=ZUXrXdVtbKDOsGXTY2h9h1GTk4atgBsFSsm-ffcVUUc,168
|
492
500
|
plexflow/core/torrents/results/__pycache__/torrent.cpython-311.pyc,sha256=SxfylbSxF9gpzXvNey4Fv9XdKLjwm0a0LYlGFhg7zAY,7655
|
493
501
|
plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc,sha256=6-XcS5D4UMNkJEJ-tNn8DwSROZcLYA_jm3pR8Eu-hbY,7420
|
502
|
+
plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc,sha256=HlAiFLzyDC-7NpW1Nyzj6HPdAefkUTBgUtiMIg6QKWg,14162
|
503
|
+
plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc,sha256=vqEt3jQLzZ-K_E9WV0kKz4K79AScvcg2xyOUTlAcu70,1136
|
494
504
|
plexflow/core/torrents/results/torrent.py,sha256=xsFFOG8Wh5YslQ4d5lhrhi2I5LHGBTCdC30CU06GAKs,4770
|
495
|
-
plexflow/core/torrents/results/universal.py,sha256=
|
505
|
+
plexflow/core/torrents/results/universal.py,sha256=ycprOMT1Px8IthmB82YhmnxeNt7P3GAcrOlEkpKoaQk,7706
|
496
506
|
plexflow/core/torrents/results/utils.py,sha256=abiiO_QQYDpA5aMyO8WFPxnGu5sL5xfACezE5bwrnJU,691
|
497
507
|
plexflow/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
498
508
|
plexflow/events/download/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -644,7 +654,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
|
|
644
654
|
plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
|
645
655
|
plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
|
646
656
|
plexflow/utils/video/subtitle.py,sha256=LOGONGxs_RzmqtGP-DBKreOzS1eUFEKo75Q6AfnavW0,1290
|
647
|
-
plexflow-0.0.
|
648
|
-
plexflow-0.0.
|
649
|
-
plexflow-0.0.
|
650
|
-
plexflow-0.0.
|
657
|
+
plexflow-0.0.76.dist-info/METADATA,sha256=QEa4LdqmRplb7pYygd90qT3FkIIoq0vZDhdQI1D-X-w,2954
|
658
|
+
plexflow-0.0.76.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
659
|
+
plexflow-0.0.76.dist-info/entry_points.txt,sha256=aEqDHlozu_zjWrl2sibtrqtQHMgU8kSJZrE782CP47g,1362
|
660
|
+
plexflow-0.0.76.dist-info/RECORD,,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
[console_scripts]
|
2
2
|
audio_extract=scripts.video.audio_extract:main
|
3
3
|
auto_torrents=scripts.torrents.auto_torrents:main
|
4
|
+
candidate_matching=scripts.torrents.candidate_matching:main
|
4
5
|
chat_with_plexa=scripts.plex.discover.chat_with_plexa:main
|
5
6
|
download_subtitles=scripts.subtitles.download_subtitles:main
|
6
7
|
find_torrents=scripts.torrents.find_torrents:main
|
File without changes
|