plexflow 0.0.73__py3-none-any.whl → 0.0.75__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.
@@ -7,3 +7,5 @@ from plexflow.core.context.partials.torrents import Torrents
7
7
  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
+ from plexflow.core.context.partials.subtitles import Subtitles
11
+ from plexflow.core.context.partials.universal_torrents import UniversalTorrents
@@ -0,0 +1,16 @@
1
+ from plexflow.core.context.partial_context import PartialContext
2
+ from datetime import datetime as dt
3
+ from plexflow.core.subtitles.providers.oss.oss_subtitle import OSSSubtitle
4
+ from typing import List
5
+
6
+ class Subtitles(PartialContext):
7
+ def __init__(self, **kwargs) -> None:
8
+ super().__init__(**kwargs)
9
+
10
+ def all(self) -> List[OSSSubtitle]:
11
+ return self.get("subtitles/oss")
12
+
13
+ def update(self, subtitles: List[OSSSubtitle]):
14
+ if len(subtitles) == 0:
15
+ return
16
+ self.set("subtitles/oss", subtitles)
@@ -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)
@@ -185,7 +185,7 @@ class UniversalTorrent:
185
185
  Returns:
186
186
  bool: True if the universal torrent is compatible with the subtitle, False otherwise.
187
187
  """
188
- return any(s.name == t.release_name or s.encoder == t.encoder_name for t in self.torrents)
188
+ return any(s.release_name.lower().strip() == t.release_name.lower().strip() or s.parsed_release_name[''] == t.encoder_name for t in self.torrents)
189
189
 
190
190
  def __eq__(self, other):
191
191
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: plexflow
3
- Version: 0.0.73
3
+ Version: 0.0.75
4
4
  Summary: A short description of the package.
5
5
  License: MIT
6
6
  Keywords: keyword1,keyword2,keyword3
@@ -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=Ptad0ZLRgE0FPIJlYzPIGCtrOlxU1mJzScaXzENlgY8,2010
23
- plexflow/core/context/partials/__init__.py,sha256=1F3tfbSIZ1Rj_rhz3cbm1dplnZogSIyq0aZMxBwSsqY,556
23
+ plexflow/core/context/partials/__init__.py,sha256=QuEI9UwFrymP0LWtU2GKoign3HdkUpoC9HBEA2MvfCo,699
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
@@ -29,9 +29,11 @@ plexflow/core/context/partials/context.py,sha256=pFzpAFxwCJdqPuhXJqhs6j4Xyvf0GQt
29
29
  plexflow/core/context/partials/ids.py,sha256=QoQ6FbX1OIWrE-iuz-G6kSzBlTt1_I1jyfl2JgKge2o,913
30
30
  plexflow/core/context/partials/movie.py,sha256=VXQ2SspFgGSRgDefg4VlHrH2fns3KRuKlU72ps6527o,3861
31
31
  plexflow/core/context/partials/reports.py,sha256=0W58RwK3VSsVHbF0rhvMNNlZZr01eutwermyvdeEZIs,810
32
+ plexflow/core/context/partials/subtitles.py,sha256=Eax0rdGeTqEHkt9KNiyv097X3I1Drt9xb19VDalyA4Q,542
32
33
  plexflow/core/context/partials/tgx_batch.py,sha256=TduB09oBOQ8CtmPYsHIeNe7AI-ypKw21zQAX-7qktEs,859
33
34
  plexflow/core/context/partials/tgx_context.py,sha256=_FuhOvKsFqi_uynHxgC9_QIR2CfYmz-uJCRFtGFJmXI,1641
34
35
  plexflow/core/context/partials/torrents.py,sha256=U6tjdsH0qIPwe9b7XZ5ChNIos68WEKn9VgCQe0A8MQ0,772
36
+ plexflow/core/context/partials/universal_torrents.py,sha256=YVykoSo61D_8_jLd6XgwWZ4Gy6sOzhIjTpJsyvPHxuE,846
35
37
  plexflow/core/context/partials/watchlist.py,sha256=XL4H3AXHhyuhuImm3OBfrOmlc9rMvVhBJJGumQijM-c,1108
36
38
  plexflow/core/context/plexflow_context.py,sha256=_Le01owaf_0hW6BwMCvMKrKX0IRHyWGWGYTzxCWmdSE,904
37
39
  plexflow/core/context/plexflow_property.py,sha256=9eLjyHlfKKUhFo_zRwUIq_QaAGE6An4B8_HOxVJbeUo,1169
@@ -352,7 +354,9 @@ plexflow/core/subtitles/providers/oss/utils/response_base.py,sha256=APjsR4OqYrKe
352
354
  plexflow/core/subtitles/providers/oss/utils/responses.py,sha256=QRTjZymSn3EWqMjteXy1apRtNDKej614D2YB1_m_v2c,7954
353
355
  plexflow/core/subtitles/providers/oss/utils/srt.py,sha256=riEuy9_1m4kZEu-Ey8bgvQUfr5ce0_Nu95GFe6Qh_u8,21041
354
356
  plexflow/core/subtitles/results/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
357
+ plexflow/core/subtitles/results/__pycache__/__init__.cpython-312.pyc,sha256=KSV9si5eK6ydXfjkOjJ24xK5kKeQYbw2_s38n-48Gvo,167
355
358
  plexflow/core/subtitles/results/__pycache__/subtitle.cpython-311.pyc,sha256=CjeZEPM8DrolKN7eIIHM2kEN3gdc90yhdZssUN0ImdY,6400
359
+ plexflow/core/subtitles/results/__pycache__/subtitle.cpython-312.pyc,sha256=p61FniRetRyEVqFapGtGt_r_8ldHG30XNyEl7iYx7wM,5984
356
360
  plexflow/core/subtitles/results/subtitle.py,sha256=1_xeg_l93b-gWRJEKrOSA8k1OlNOfJgotFWWsfgiUvM,3852
357
361
  plexflow/core/torrents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
358
362
  plexflow/core/torrents/__pycache__/__init__.cpython-311.pyc,sha256=Ak5TvWroVnHx7z-S-hqYzBrZyP5axDM85dpaSb4yI3o,172
@@ -490,8 +494,10 @@ plexflow/core/torrents/results/__pycache__/__init__.cpython-311.pyc,sha256=FJHx4
490
494
  plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc,sha256=ZUXrXdVtbKDOsGXTY2h9h1GTk4atgBsFSsm-ffcVUUc,168
491
495
  plexflow/core/torrents/results/__pycache__/torrent.cpython-311.pyc,sha256=SxfylbSxF9gpzXvNey4Fv9XdKLjwm0a0LYlGFhg7zAY,7655
492
496
  plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc,sha256=6-XcS5D4UMNkJEJ-tNn8DwSROZcLYA_jm3pR8Eu-hbY,7420
497
+ plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc,sha256=Sbvn5JyDCDU58AL_5xUqJ6PDnyilRU3ImVTPz910l8Q,12053
498
+ plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc,sha256=vqEt3jQLzZ-K_E9WV0kKz4K79AScvcg2xyOUTlAcu70,1136
493
499
  plexflow/core/torrents/results/torrent.py,sha256=xsFFOG8Wh5YslQ4d5lhrhi2I5LHGBTCdC30CU06GAKs,4770
494
- plexflow/core/torrents/results/universal.py,sha256=eU0GyxewT9XkvFbtUIaNNB-Y_aXCl7XPvb5z8VVyE1o,6614
500
+ plexflow/core/torrents/results/universal.py,sha256=jZDk4ahi7cgUfc1kW3SN4nHDQE3FezcvvxRRkYTAyXg,6670
495
501
  plexflow/core/torrents/results/utils.py,sha256=abiiO_QQYDpA5aMyO8WFPxnGu5sL5xfACezE5bwrnJU,691
496
502
  plexflow/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
497
503
  plexflow/events/download/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -643,7 +649,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
643
649
  plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
644
650
  plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
645
651
  plexflow/utils/video/subtitle.py,sha256=LOGONGxs_RzmqtGP-DBKreOzS1eUFEKo75Q6AfnavW0,1290
646
- plexflow-0.0.73.dist-info/METADATA,sha256=eEbSSAHrVPA3tZJADM2F-spWyEOBOrHEI3X4TQ0Wp2U,2954
647
- plexflow-0.0.73.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
648
- plexflow-0.0.73.dist-info/entry_points.txt,sha256=A-_w_iUmjrSgDtOcX-G5H3NboAAZNzwiFoQbBf4bVjg,1302
649
- plexflow-0.0.73.dist-info/RECORD,,
652
+ plexflow-0.0.75.dist-info/METADATA,sha256=L6gTk_qUSmG7YMo0XNnBm5rEU-mgMRAXhjtqOpuMWSo,2954
653
+ plexflow-0.0.75.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
654
+ plexflow-0.0.75.dist-info/entry_points.txt,sha256=A-_w_iUmjrSgDtOcX-G5H3NboAAZNzwiFoQbBf4bVjg,1302
655
+ plexflow-0.0.75.dist-info/RECORD,,