plexflow 0.0.76__py3-none-any.whl → 0.0.78__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 (24) hide show
  1. plexflow/core/context/partials/universal_torrents.py +3 -10
  2. plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc +0 -0
  3. plexflow/core/torrents/auto/auto_torrents.py +4 -0
  4. plexflow/core/torrents/providers/piratesparadise/__init__.py +0 -0
  5. plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-311.pyc +0 -0
  6. plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc +0 -0
  7. plexflow/core/torrents/providers/piratesparadise/__pycache__/extratorrent.cpython-312.pyc +0 -0
  8. plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc +0 -0
  9. plexflow/core/torrents/providers/piratesparadise/__pycache__/therarbg.cpython-312.pyc +0 -0
  10. plexflow/core/torrents/providers/piratesparadise/__pycache__/torrentquest.cpython-312.pyc +0 -0
  11. plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-311.pyc +0 -0
  12. plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-312.pyc +0 -0
  13. plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-311.pyc +0 -0
  14. plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc +0 -0
  15. plexflow/core/torrents/providers/piratesparadise/piratesparadise.py +20 -0
  16. plexflow/core/torrents/providers/piratesparadise/utils.py +56 -0
  17. plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc +0 -0
  18. plexflow/core/torrents/providers/therarbg/utils.py +1 -1
  19. plexflow/utils/torrent/extract/__pycache__/piratesparadise.cpython-312.pyc +0 -0
  20. plexflow/utils/torrent/extract/piratesparadise.py +62 -0
  21. {plexflow-0.0.76.dist-info → plexflow-0.0.78.dist-info}/METADATA +1 -1
  22. {plexflow-0.0.76.dist-info → plexflow-0.0.78.dist-info}/RECORD +24 -9
  23. {plexflow-0.0.76.dist-info → plexflow-0.0.78.dist-info}/WHEEL +0 -0
  24. {plexflow-0.0.76.dist-info → plexflow-0.0.78.dist-info}/entry_points.txt +0 -0
@@ -7,17 +7,10 @@ class UniversalTorrents(PartialContext):
7
7
  def __init__(self, **kwargs) -> None:
8
8
  super().__init__(**kwargs)
9
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}")
10
+ def all(self) -> List[UniversalTorrent]:
11
+ return self.get("universal/torrents")
18
12
 
19
13
  def update(self, torrents: List[UniversalTorrent]):
20
14
  if len(torrents) == 0:
21
15
  return
22
- source = next(iter(torrents)).source
23
- self.set(f"universal/torrents/{source}", torrents)
16
+ self.set(f"universal/torrents", torrents)
@@ -5,6 +5,8 @@ from plexflow.core.torrents.providers.extratorrent.extratorrent import ExtraTorr
5
5
  from plexflow.core.torrents.providers.ext.ext import Ext
6
6
  from plexflow.core.torrents.providers.snowfl.snowfl import Snowfl
7
7
  from plexflow.core.torrents.providers.therarbg.therarbg import TheRarbg
8
+ from plexflow.core.torrents.providers.piratesparadise.piratesparadise import PiratesParadise
9
+
8
10
  from typing import List
9
11
  from plexflow.core.torrents.results.torrent import Torrent
10
12
 
@@ -25,5 +27,7 @@ class AutoTorrents:
25
27
  return Ext(**kwargs).search(query=query)
26
28
  elif source == 'snowfl':
27
29
  return Snowfl(**kwargs).search(query=query)
30
+ elif source == "piratesparadise":
31
+ return PiratesParadise().search(query=query, kwargs=kwargs)
28
32
  else:
29
33
  raise ValueError(f"Invalid source: {source}")
@@ -0,0 +1,20 @@
1
+ from plexflow.utils.api.rest.plexful import Plexful
2
+ from plexflow.utils.api.rest.restful import Restful
3
+ from plexflow.core.torrents.providers.piratesparadise.utils import PiratesParadiseSearchResult
4
+ from plexflow.utils.torrent.extract.piratesparadise import extract_torrent_results
5
+ from typing import List
6
+
7
+ class PiratesParadise(Plexful):
8
+ def __init__(self, base_url: str = 'https://piratesparadise.org'):
9
+ super().__init__(base_url=base_url)
10
+
11
+ def search(self, query: str, headless: bool = True, **kwargs) -> List[PiratesParadiseSearchResult]:
12
+ response = self.get('/search.php', query_params={
13
+ 'q': query,
14
+ })
15
+
16
+ response.raise_for_status()
17
+
18
+ data = extract_torrent_results(html=response.text)
19
+
20
+ return list(map(lambda t: PiratesParadiseSearchResult(**t), data))
@@ -0,0 +1,56 @@
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 PiratesParadiseSearchResult(Torrent):
7
+ def __init__(self, **kwargs):
8
+ super().__init__()
9
+ self._name = kwargs.get('name')
10
+ self._date = kwargs.get('date')
11
+ self._size = kwargs.get('size_bytes')
12
+ self._seeds = kwargs.get('seeds')
13
+ self._peers = kwargs.get('peers')
14
+ self._link = kwargs.get('link')
15
+ self._magnet = kwargs.get('magnet')
16
+ self.src = 'piratesparadise'
17
+
18
+ @property
19
+ def source(self) -> str:
20
+ return self.src
21
+
22
+ @property
23
+ def magnet(self) -> str:
24
+ return self._magnet
25
+
26
+ @property
27
+ def date(self) -> datetime:
28
+ return self._date
29
+
30
+ @property
31
+ def seeds(self) -> int:
32
+ return self._seeds
33
+
34
+ @property
35
+ def peers(self) -> int:
36
+ return self._peers
37
+
38
+ @property
39
+ def size_bytes(self) -> int:
40
+ return self._size
41
+
42
+ @property
43
+ def imdb_code(self) -> IMDbCode:
44
+ return None
45
+
46
+ @property
47
+ def release_name(self) -> str:
48
+ return self._name
49
+
50
+ @property
51
+ def hash(self) -> str:
52
+ return extract_torrent_hash(self._magnet)
53
+
54
+ @property
55
+ def url(self) -> str:
56
+ return self._link
@@ -50,7 +50,7 @@ class TheRarbgSearchResult(Torrent):
50
50
 
51
51
  @property
52
52
  def hash(self) -> str:
53
- return extract_torrent_hash(self._magnet)
53
+ return None
54
54
 
55
55
  @property
56
56
  def url(self) -> str:
@@ -0,0 +1,62 @@
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
+ torrents = []
10
+ soup = BeautifulSoup(html, 'html.parser')
11
+
12
+ # Find all table rows that likely contain torrent information
13
+ rows = soup.select('table tbody tr')
14
+
15
+ for row in rows:
16
+ torrent = {}
17
+
18
+ rs = row.select('td a.name-link')
19
+ if rs:
20
+ name_link = rs[0]
21
+ torrent['name'] = name_link.text.strip()
22
+ torrent['link'] = 'https://piratesparadise.org' + name_link['href'].strip()
23
+
24
+ rs = row.select('td:nth-child(2)')
25
+ if rs:
26
+ size_elem = rs[0]
27
+ torrent['size'] = size_elem.text
28
+ torrent['size_bytes'] = next(iter(parse_size(torrent['size'])), None)
29
+
30
+ rs = row.select('td .seeds')
31
+ if rs:
32
+ seeds_elem = rs[0]
33
+ try:
34
+ torrent['seeds'] = int(seeds_elem.text)
35
+ except:
36
+ torrent['seeds'] = -1
37
+
38
+ rs = row.select('td .peers')
39
+ if rs:
40
+ peers_elem = rs[0]
41
+ try:
42
+ torrent['peers'] = int(peers_elem.text)
43
+ except:
44
+ torrent['peers'] = -1
45
+
46
+ rs = row.select('td .date-added')
47
+ if rs:
48
+ date_elem = rs[0]
49
+ torrent['added'] = date_elem.text.strip()
50
+ torrent['date'] = dateparser.parse(torrent['added'])
51
+
52
+ rs = row.select('td .magnet-btn')
53
+ if rs:
54
+ magnet_elem = rs[0]
55
+ torrent['magnet'] = magnet_elem['onclick'].strip()
56
+ parts = torrent['magnet'].split("('")
57
+ tmp = parts[1]
58
+ parts = tmp.split("')")
59
+ torrent['magnet'] = parts[0].strip()
60
+ torrents.append(torrent)
61
+
62
+ return torrents
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: plexflow
3
- Version: 0.0.76
3
+ Version: 0.0.78
4
4
  Summary: A short description of the package.
5
5
  License: MIT
6
6
  Keywords: keyword1,keyword2,keyword3
@@ -34,7 +34,7 @@ plexflow/core/context/partials/subtitles.py,sha256=Eax0rdGeTqEHkt9KNiyv097X3I1Dr
34
34
  plexflow/core/context/partials/tgx_batch.py,sha256=TduB09oBOQ8CtmPYsHIeNe7AI-ypKw21zQAX-7qktEs,859
35
35
  plexflow/core/context/partials/tgx_context.py,sha256=_FuhOvKsFqi_uynHxgC9_QIR2CfYmz-uJCRFtGFJmXI,1641
36
36
  plexflow/core/context/partials/torrents.py,sha256=U6tjdsH0qIPwe9b7XZ5ChNIos68WEKn9VgCQe0A8MQ0,772
37
- plexflow/core/context/partials/universal_torrents.py,sha256=YVykoSo61D_8_jLd6XgwWZ4Gy6sOzhIjTpJsyvPHxuE,846
37
+ plexflow/core/context/partials/universal_torrents.py,sha256=yohdSEhspSdvmrI6NeBB2Racb7yS2kz7qyFat6gNw6k,563
38
38
  plexflow/core/context/partials/watchlist.py,sha256=XL4H3AXHhyuhuImm3OBfrOmlc9rMvVhBJJGumQijM-c,1108
39
39
  plexflow/core/context/plexflow_context.py,sha256=_Le01owaf_0hW6BwMCvMKrKX0IRHyWGWGYTzxCWmdSE,904
40
40
  plexflow/core/context/plexflow_property.py,sha256=9eLjyHlfKKUhFo_zRwUIq_QaAGE6An4B8_HOxVJbeUo,1169
@@ -372,7 +372,7 @@ plexflow/core/torrents/analyzers/analyzed_torrent.py,sha256=gsAr5RjYVXozWUaP3zSh
372
372
  plexflow/core/torrents/analyzers/analyzer.py,sha256=-KqZpwrrQpu5Aqt94plO5fUr1RQOOdCzKb1dT5P1SoE,1358
373
373
  plexflow/core/torrents/analyzers/torrentquest/__pycache__/analyzer.cpython-312.pyc,sha256=NpoTFmZEWD7_49Qdbr4_CsvIn5F0uOjls-uWa3hgodY,2759
374
374
  plexflow/core/torrents/analyzers/torrentquest/analyzer.py,sha256=f2X3CcYBA9xYZ6kRLkGQ5YK5feXjsw229z5nLWUHMEI,1907
375
- plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc,sha256=pEFJkUFZ0HtoYM06OjuKpecLQCodQ3imr3gIlnfEPOo,2266
375
+ plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc,sha256=d5aPkRYG0-_RD82MvWPwuNRCsbK75jk_Wl84cwjqS3A,2503
376
376
  plexflow/core/torrents/auto/auto_providers/auto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
377
377
  plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-311.pyc,sha256=qCFNPGmwyRmmvaF4ox321aGG3j1ix-HTZg8LA5kr0QE,197
378
378
  plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc,sha256=vaXlU_2wadR_q6ZWmjygCqx4BjjtyYaHXzC5fD6CI1w,185
@@ -388,7 +388,7 @@ plexflow/core/torrents/auto/auto_providers/auto/__pycache__/show.cpython-311.pyc
388
388
  plexflow/core/torrents/auto/auto_providers/auto/__pycache__/show.cpython-312.pyc,sha256=845WWBpPiVLB9FIc4zJ_1NDw9WFhvFqS13Cc1aneGg8,1761
389
389
  plexflow/core/torrents/auto/auto_providers/auto/torrent.py,sha256=yenzXr-VqmpoEONJdMOKgtstdOSzCIAFphTTm8ZI7B4,1594
390
390
  plexflow/core/torrents/auto/auto_providers/tpb/torrent.py,sha256=8X2i75s3sI9rGcTQ94_0kNkO-7docR9P_I0BRAv7PUQ,1612
391
- plexflow/core/torrents/auto/auto_torrents.py,sha256=HY5pvDg8nTkLUsm9YbZDEaZ8ZAKg8iC3WIBeuajBxes,1513
391
+ plexflow/core/torrents/auto/auto_torrents.py,sha256=Raal3-ZK30o8hOvQrwiWYmiQy7zYkFcKTLi4wQi4K7k,1721
392
392
  plexflow/core/torrents/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
393
393
  plexflow/core/torrents/providers/__pycache__/__init__.cpython-311.pyc,sha256=8u9BzsXTcFt1MeuWCG0TjlyZaO7NJjsSfx_OUByR5rE,182
394
394
  plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc,sha256=XGXMvMUUeVRElhD7NGGsnvEsyrbrbsHzrvEZzjgieR0,170
@@ -422,6 +422,19 @@ plexflow/core/torrents/providers/eztv/__pycache__/tpb.cpython-311.pyc,sha256=Pgf
422
422
  plexflow/core/torrents/providers/eztv/__pycache__/utils.cpython-311.pyc,sha256=rdsDNrRB_0GhGserZSvZukJIcPt7Czox2_1SMw-c10U,5465
423
423
  plexflow/core/torrents/providers/eztv/eztv.py,sha256=VG_l6UjDztkl-pokmkLuqKsY2Gm82dQZn5vlecDh-6g,1764
424
424
  plexflow/core/torrents/providers/eztv/utils.py,sha256=JaXyqGA0Zc0BhuoC75JkKy4PmN3AO4E-817_BkSY6J4,2850
425
+ plexflow/core/torrents/providers/piratesparadise/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
426
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
427
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/__init__.cpython-312.pyc,sha256=POQn-sb7PYiQiZZz1tPsPsexwX5PWhCfoXCfK0Tu1IQ,184
428
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/extratorrent.cpython-312.pyc,sha256=jFH8XCLnDh4ZNXs_VHoua7yJrOzf4UXE9ocwEvb40uk,1849
429
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/piratesparadise.cpython-312.pyc,sha256=qllembPfXh-mpPvVR5ut9V5PoxvIn8YT0GUV_oQpPuQ,1774
430
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/therarbg.cpython-312.pyc,sha256=EuY35TKrVDa6nz3JrVqRGURM9AOFZKeX1DPaHIGn5yo,1732
431
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/torrentquest.cpython-312.pyc,sha256=mnM8dE7oCUjkjRL_pabx89IAi-KrjOme0WzWyQr1X0w,1835
432
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
433
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
434
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
435
+ plexflow/core/torrents/providers/piratesparadise/__pycache__/utils.cpython-312.pyc,sha256=IrcVcSYpD4mAn21gja6_3ULB0Kt_JUd3ZTX7piLmNRc,3447
436
+ plexflow/core/torrents/providers/piratesparadise/piratesparadise.py,sha256=QifPboYgJOlIsOO0OGUPkvTg3NaXCAIH3vdaTG_TT1c,845
437
+ plexflow/core/torrents/providers/piratesparadise/utils.py,sha256=qnYQlqmzR62EEEcylSohrUQtIyYselNK2JhhN3y-LsQ,1372
425
438
  plexflow/core/torrents/providers/rarbg2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
426
439
  plexflow/core/torrents/providers/rarbg2/__pycache__/__init__.cpython-311.pyc,sha256=5V3wvzaKuEsqNyOL4-jILERBitIwrVqVnMjuQ_gAgik,189
427
440
  plexflow/core/torrents/providers/rarbg2/__pycache__/__init__.cpython-312.pyc,sha256=2-307lDdUrMbmxg9YI1DSbM8Mj6BYWLXva6rQojRh2M,177
@@ -462,9 +475,9 @@ plexflow/core/torrents/providers/therarbg/__pycache__/torrentquest.cpython-312.p
462
475
  plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-311.pyc,sha256=e_38p1LN_QMIlb92ffVan46SkaPTaMVYFpys7BzPEaY,1688
463
476
  plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-312.pyc,sha256=OaCxggRVF0ZZiZmQTxyDZ8CyivJShLfZhLCglhUsXoI,1422
464
477
  plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-311.pyc,sha256=YwB71cMUDX6MxUduWoFXRQXsP_LIRqK4rAVrJMX4v38,6704
465
- plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc,sha256=LpoMqbt7TmO2KyKL3QmMqnAxD621cxSD46FF0Z1nupg,3604
478
+ plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc,sha256=Q-1HJKH_SvVAm1asHGOKZlk5fSr14Yfo3WgUVBLTq50,3534
466
479
  plexflow/core/torrents/providers/therarbg/therarbg.py,sha256=aG7lbj98jjPJA0L6RAPxHePHfGMxaW8p18lkROQFL2E,798
467
- plexflow/core/torrents/providers/therarbg/utils.py,sha256=sEP4dcJNuE5pxu2Gf8rrnxW06dxz4ZOGeJMe1mY1PBA,1465
480
+ plexflow/core/torrents/providers/therarbg/utils.py,sha256=J3Ee6VW72tdonbOJVC-7Pem3rY1BtuulKbIYCTd_E4U,1435
468
481
  plexflow/core/torrents/providers/torrentquest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
469
482
  plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-311.pyc,sha256=IPhTUbnFhD-jhXQxUsYyjZHs08ho1cVQk1Fx6gj46_s,186
470
483
  plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc,sha256=sJs2uYlRHhsGNMKpx24zgNI4OTABqLx6wbDovosUIK4,183
@@ -631,6 +644,7 @@ plexflow/utils/torrent/analyze.py,sha256=Yjv-Qsrkrq33ZSmDFkXkyutnNcW7fkGcls-IOB5
631
644
  plexflow/utils/torrent/extract/__pycache__/common.cpython-312.pyc,sha256=WTgyNFyySpFEtklNMsrhdvngA_ap8AAY-5-QPHVtxfM,1862
632
645
  plexflow/utils/torrent/extract/__pycache__/ext.cpython-312.pyc,sha256=qRVyjKJFb5P5wGETuI05oqUxUaKvNMzBpk8jB7sHk1E,272185
633
646
  plexflow/utils/torrent/extract/__pycache__/extratorrent.cpython-312.pyc,sha256=a08Mno5zwRLr5VQTzF5OFskW5cHt5kKdhJbxQRqWzF4,3448
647
+ plexflow/utils/torrent/extract/__pycache__/piratesparadise.cpython-312.pyc,sha256=waiUKJht8KLl40FvbF1Sgspqx1dxckV7Sa4Ft4sQfgw,2621
634
648
  plexflow/utils/torrent/extract/__pycache__/tgx.cpython-312.pyc,sha256=KCow3ShVA0F98hmM_ESTANVSoQt2h9L_8-K5rljAMNs,4661
635
649
  plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc,sha256=cPovyLOodqJbjr14ROsBBhRQzRjp9KT0dC_WHb3tZCU,7889
636
650
  plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc,sha256=hOpCw3fSf5GPYxZnOv9VEW1RzsnFzTfHH5wK5ubbp3Y,7880
@@ -638,6 +652,7 @@ plexflow/utils/torrent/extract/common.py,sha256=DtEe7aUfE96pwWnVl0aUOlRBq2ps36tE
638
652
  plexflow/utils/torrent/extract/ext.py,sha256=3jmBfR1zL8XgdhR1BVZWRmH7TN68gFcX5K799bjwN0o,271641
639
653
  plexflow/utils/torrent/extract/extratorrent.py,sha256=G_PlvT1CcMiq96q3BMsSwMg-BEjD3kp0IBB6up8zoK4,2339
640
654
  plexflow/utils/torrent/extract/kat.py,sha256=-pQND_1forno9wn5w-Kua7PJFjKpDH_HcYvMIOJ8kA0,91269
655
+ plexflow/utils/torrent/extract/piratesparadise.py,sha256=yAlMDRdtmAZvHlo-rvMNDZEkH4HCyXDe_DMhV5SATNM,1912
641
656
  plexflow/utils/torrent/extract/tgx.py,sha256=EMvuK5LcuukTaDgTsSU-9fP4vYDU931957JnyLnhCcY,3223
642
657
  plexflow/utils/torrent/extract/therarbg.py,sha256=q97dJCmpnzKJcrhlOwOWx-ovMCk5qVY1HCXa4RAvrao,6527
643
658
  plexflow/utils/torrent/extract/torrentquest.py,sha256=gQn9GanFM5SXvpwjcyRu0XgTZ23KTJ_FeHIsanGl2WI,6868
@@ -654,7 +669,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
654
669
  plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
655
670
  plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
656
671
  plexflow/utils/video/subtitle.py,sha256=LOGONGxs_RzmqtGP-DBKreOzS1eUFEKo75Q6AfnavW0,1290
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,,
672
+ plexflow-0.0.78.dist-info/METADATA,sha256=37irObOaaMbn2WVUzgkVV8dSv4edqaoqdSi3T_M8Jgw,2954
673
+ plexflow-0.0.78.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
674
+ plexflow-0.0.78.dist-info/entry_points.txt,sha256=aEqDHlozu_zjWrl2sibtrqtQHMgU8kSJZrE782CP47g,1362
675
+ plexflow-0.0.78.dist-info/RECORD,,