plexflow 0.0.92__py3-none-any.whl → 0.0.94__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 (22) hide show
  1. plexflow/core/__pycache__/__init__.cpython-312.pyc +0 -0
  2. plexflow/core/downloads/__pycache__/__init__.cpython-312.pyc +0 -0
  3. plexflow/core/downloads/candidates/__pycache__/__init__.cpython-312.pyc +0 -0
  4. plexflow/core/downloads/candidates/__pycache__/download_candidate.cpython-312.pyc +0 -0
  5. plexflow/core/downloads/candidates/download_candidate.py +4 -0
  6. plexflow/core/downloads/qbit/__pycache__/schedule.cpython-312.pyc +0 -0
  7. plexflow/core/downloads/qbit/schedule.py +24 -0
  8. plexflow/core/subtitles/__pycache__/__init__.cpython-312.pyc +0 -0
  9. plexflow/core/subtitles/results/__pycache__/__init__.cpython-312.pyc +0 -0
  10. plexflow/core/subtitles/results/__pycache__/subtitle.cpython-312.pyc +0 -0
  11. plexflow/core/torrents/__pycache__/__init__.cpython-312.pyc +0 -0
  12. plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc +0 -0
  13. plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc +0 -0
  14. plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc +0 -0
  15. plexflow/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  16. plexflow/utils/google/pubsub/consume.py +37 -0
  17. plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
  18. plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc +0 -0
  19. {plexflow-0.0.92.dist-info → plexflow-0.0.94.dist-info}/METADATA +2 -1
  20. {plexflow-0.0.92.dist-info → plexflow-0.0.94.dist-info}/RECORD +22 -19
  21. {plexflow-0.0.92.dist-info → plexflow-0.0.94.dist-info}/entry_points.txt +1 -0
  22. {plexflow-0.0.92.dist-info → plexflow-0.0.94.dist-info}/WHEEL +0 -0
@@ -183,6 +183,10 @@ class DownloadCandidate:
183
183
  len(self.subtitles) > 0
184
184
  ])
185
185
 
186
+ @property
187
+ def magnets(self) -> List[str]:
188
+ return [t.magnet for t in self.torrent.torrents]
189
+
186
190
  @property
187
191
  def has_dutch_subtitles(self) -> bool:
188
192
  """
@@ -0,0 +1,24 @@
1
+ import qbittorrentapi
2
+ from plexflow.core.downloads.candidates.download_candidate import DownloadCandidate
3
+ from typing import List
4
+
5
+
6
+ def schedule_download(magnet: str, category: str = None, tags: List[str] = ()):
7
+ # instantiate a Client using the appropriate WebUI configuration
8
+ conn_info = dict(
9
+ host="192.168.1.50",
10
+ port=8081,
11
+ username="admin",
12
+ password="adminadmin",
13
+ )
14
+ qbt_client = qbittorrentapi.Client(**conn_info)
15
+
16
+ # or use a context manager:
17
+ with qbittorrentapi.Client(**conn_info) as qbt_client:
18
+ if qbt_client.torrents_add(
19
+ urls=magnet,
20
+ save_path='/media/cloud2/mediacloud/tmp/torrents',
21
+ content_layout='Subfolder',
22
+ tags=tags,
23
+ category=category) != "Ok.":
24
+ raise Exception("Failed to add torrent.")
@@ -0,0 +1,37 @@
1
+ from google.cloud import pubsub_v1
2
+ import json
3
+
4
+ def consume_message(topic_id: str, project_id: str, as_json: bool = True, timeout: int = 5):
5
+ subscriber = pubsub_v1.SubscriberClient()
6
+ # The `subscription_path` method creates a fully qualified identifier
7
+ # in the form `projects/{project_id}/subscriptions/{subscription_id}`
8
+ subscription_path = subscriber.subscription_path(project_id, topic_id)
9
+
10
+ data = None
11
+
12
+ def callback(message: pubsub_v1.subscriber.message.Message) -> None:
13
+ nonlocal data
14
+
15
+ print(f"Received {message}.")
16
+ print(message.data.decode())
17
+ if as_json:
18
+ data = json.loads(message.data.decode())
19
+ else:
20
+ data = message.data.decode()
21
+
22
+ message.ack()
23
+
24
+ streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)
25
+ print(f"Listening for messages on {subscription_path}..\n")
26
+
27
+ # Wrap subscriber in a 'with' block to automatically call close() when done.
28
+ with subscriber:
29
+ try:
30
+ # When `timeout` is not set, result() will block indefinitely,
31
+ # unless an exception is encountered first.
32
+ streaming_pull_future.result(timeout=timeout)
33
+ except TimeoutError:
34
+ streaming_pull_future.cancel() # Trigger the shutdown.
35
+ streaming_pull_future.result() # Block until the shutdown is complete.
36
+
37
+ return data
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: plexflow
3
- Version: 0.0.92
3
+ Version: 0.0.94
4
4
  Summary: A short description of the package.
5
5
  License: MIT
6
6
  Keywords: keyword1,keyword2,keyword3
@@ -51,6 +51,7 @@ Requires-Dist: pyngrok (>=7.1.6,<8.0.0)
51
51
  Requires-Dist: pysrt (>=1.1.2,<2.0.0)
52
52
  Requires-Dist: python-ffmpeg (>=2.0.10,<3.0.0)
53
53
  Requires-Dist: python-ulid (>=2.7.0,<3.0.0)
54
+ Requires-Dist: qbittorrent-api (>=2025.2.0,<2026.0.0)
54
55
  Requires-Dist: ratelimit (>=2.2.1,<3.0.0)
55
56
  Requires-Dist: redis (>=4.1.3,<5.0.0)
56
57
  Requires-Dist: requests (>=2.25.1,<3.0.0)
@@ -3,7 +3,7 @@ plexflow/__main__.py,sha256=qW3ug8lI8NRAekcgfX13svs8kZL2B4Iou66wSuB4LmA,494
3
3
  plexflow/core/.DS_Store,sha256=Be9vsDyQBOak6RDUECY_7-dRR1twWvD1hq5DFWSaA1U,6148
4
4
  plexflow/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  plexflow/core/__pycache__/__init__.cpython-311.pyc,sha256=ZGKcTAnfmuQ7FBmmHD7jaZ5xxu7djqmtifHLnalJNh4,163
6
- plexflow/core/__pycache__/__init__.cpython-312.pyc,sha256=BitY27KpPtHWw9CC3qWCg_lvhnzAo1OySyG3jcyiHJw,151
6
+ plexflow/core/__pycache__/__init__.cpython-312.pyc,sha256=z2OvrVYJN25LyXX9kE9dNS5PsYgpAa9DrEMae1p3-1k,149
7
7
  plexflow/core/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  plexflow/core/context/__pycache__/__init__.cpython-311.pyc,sha256=d9tgD1hoEDS2p7dhus4tQtneTiuhm7UngrtbKLEHa9I,171
9
9
  plexflow/core/context/__pycache__/__init__.cpython-312.pyc,sha256=vM07AEmfonoNQlIz3xb8jZYdBaaMhXSD_XreGFW3400,159
@@ -60,18 +60,20 @@ plexflow/core/context/watchlist/__pycache__/__init__.cpython-311.pyc,sha256=iwUR
60
60
  plexflow/core/context/watchlist/__pycache__/context.cpython-311.pyc,sha256=NbmRe6tzqI4BljIUesvFYaMUfYdXkVHz68SwAQCBtxg,2640
61
61
  plexflow/core/context/watchlist/context.py,sha256=_JKr1tddYLD6gemKelj_LB5t-pev_6SUIaQnl1tPX8c,1548
62
62
  plexflow/core/downloads/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- plexflow/core/downloads/__pycache__/__init__.cpython-312.pyc,sha256=zUMxgNLYel7bBvNKnVb_QBn5GPVNLTKQn2do3Ra5gEU,159
63
+ plexflow/core/downloads/__pycache__/__init__.cpython-312.pyc,sha256=soaT0G2pvzN68xVkNyM9AKW0bhpmjqhIeF35mfoREDI,159
64
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
65
+ plexflow/core/downloads/candidates/__pycache__/__init__.cpython-312.pyc,sha256=rukNX00PSteBonRk-cayzNRk17ypWfE4noOAR3Ibjn0,170
66
+ plexflow/core/downloads/candidates/__pycache__/download_candidate.cpython-312.pyc,sha256=fLBABqo8sVR_Xcw_2BkUrZvXjKIHS82-ho5Bzcqbgzg,9142
67
67
  plexflow/core/downloads/candidates/__pycache__/utils.cpython-312.pyc,sha256=Jwoj7R4TFzjoXc3uq_Wps3WitzFE9K_miKp9XuT_l8Y,2079
68
- plexflow/core/downloads/candidates/download_candidate.py,sha256=KlW4GhAbp2hhDuoAphuFj3uweJE4LjwRvUNe-R7h-es,5819
68
+ plexflow/core/downloads/candidates/download_candidate.py,sha256=CUq56hnl624GvrXb5ET0-z1xnNGfbCdJu2MMPItkYnI,5927
69
69
  plexflow/core/downloads/candidates/filtered.py,sha256=HgUY0S3aWAeHASHTjND9hyjCtGNLhUzLOL90G2CDxKg,1842
70
70
  plexflow/core/downloads/candidates/rank/__pycache__/ranking.cpython-312.pyc,sha256=Wz8hGAtLZNT0ThAPwloLBek5wflI6DKFDhr5_b7TzPI,4045
71
71
  plexflow/core/downloads/candidates/rank/__pycache__/utils.cpython-312.pyc,sha256=5Q6q1kw62WCWlPVFpXgXYt6oqf2gWHK_DHaZ-CBADwk,426
72
72
  plexflow/core/downloads/candidates/rank/ranking.py,sha256=p86f3DQmXJNE53gPk9E5RcKA7dgXI4wPQsIh9ae1uxY,2490
73
73
  plexflow/core/downloads/candidates/rank/utils.py,sha256=R4Ai4KmZRONo9vd2rf32DdGxVkANHYFwSjrO5WVjX9U,100
74
74
  plexflow/core/downloads/candidates/utils.py,sha256=ahI6bvk7CHT_O0BEXsd7FtC180Swlt9Phj6_op1mhYA,1777
75
+ plexflow/core/downloads/qbit/__pycache__/schedule.cpython-312.pyc,sha256=KaPzztSjrBeFBwXYKHMlwExoaHXv3_2GIDkXJace5Ek,1180
76
+ plexflow/core/downloads/qbit/schedule.py,sha256=Vu-7PENgIF7CRrvqeDl_lKbfmYDFQ1otD0gOyLoAeJI,841
75
77
  plexflow/core/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
78
  plexflow/core/env/env.py,sha256=8cK49WiKD_H3B9K0QiMu7pkXTld40ojRB3sK7noQM44,953
77
79
  plexflow/core/genai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -306,7 +308,7 @@ plexflow/core/storage/object/plexflow_storage.py,sha256=28sADPUQcYcVSt0ndu9xGLTu
306
308
  plexflow/core/storage/object/redis_storage.py,sha256=6EDSNEgNjP0KNdTtJXZebeUAiqRV97oAdjtUnU2bDBE,6097
307
309
  plexflow/core/subtitles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
310
  plexflow/core/subtitles/__pycache__/__init__.cpython-311.pyc,sha256=OYwWx4EBadzOpHEvbaF5bZchOHk_t-wQVn1DhTL2htI,173
309
- plexflow/core/subtitles/__pycache__/__init__.cpython-312.pyc,sha256=R1Mp_zdXVHo1f7h4LMcFbYx_ZLChTIeI6hIoMy8kDIA,161
311
+ plexflow/core/subtitles/__pycache__/__init__.cpython-312.pyc,sha256=2PJQlSPfcyB_VcjDapXQJfacKBhhgHQWhQuDkisU9L4,159
310
312
  plexflow/core/subtitles/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
311
313
  plexflow/core/subtitles/providers/__pycache__/__init__.cpython-311.pyc,sha256=2zxIOGeFbCSy016Qy8yp-nUn4JqwVN2QMwtiEM0EVMg,183
312
314
  plexflow/core/subtitles/providers/__pycache__/__init__.cpython-312.pyc,sha256=gp9rHSu09WohhuFlVII26NTnqB9maGtEsjc8rKQ7pvo,171
@@ -363,13 +365,13 @@ plexflow/core/subtitles/providers/oss/utils/response_base.py,sha256=APjsR4OqYrKe
363
365
  plexflow/core/subtitles/providers/oss/utils/responses.py,sha256=QRTjZymSn3EWqMjteXy1apRtNDKej614D2YB1_m_v2c,7954
364
366
  plexflow/core/subtitles/providers/oss/utils/srt.py,sha256=riEuy9_1m4kZEu-Ey8bgvQUfr5ce0_Nu95GFe6Qh_u8,21041
365
367
  plexflow/core/subtitles/results/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
366
- plexflow/core/subtitles/results/__pycache__/__init__.cpython-312.pyc,sha256=KSV9si5eK6ydXfjkOjJ24xK5kKeQYbw2_s38n-48Gvo,167
368
+ plexflow/core/subtitles/results/__pycache__/__init__.cpython-312.pyc,sha256=pbtCneRJu13bCTfJVrt0dYFUsdTWOqzjFTJQTekeD5s,167
367
369
  plexflow/core/subtitles/results/__pycache__/subtitle.cpython-311.pyc,sha256=CjeZEPM8DrolKN7eIIHM2kEN3gdc90yhdZssUN0ImdY,6400
368
- plexflow/core/subtitles/results/__pycache__/subtitle.cpython-312.pyc,sha256=p61FniRetRyEVqFapGtGt_r_8ldHG30XNyEl7iYx7wM,5984
370
+ plexflow/core/subtitles/results/__pycache__/subtitle.cpython-312.pyc,sha256=kDLEfwKiTgKMvis6GQ19lXs8Ybz09KV8tgMLx6D1BhE,5984
369
371
  plexflow/core/subtitles/results/subtitle.py,sha256=1_xeg_l93b-gWRJEKrOSA8k1OlNOfJgotFWWsfgiUvM,3852
370
372
  plexflow/core/torrents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
371
373
  plexflow/core/torrents/__pycache__/__init__.cpython-311.pyc,sha256=Ak5TvWroVnHx7z-S-hqYzBrZyP5axDM85dpaSb4yI3o,172
372
- plexflow/core/torrents/__pycache__/__init__.cpython-312.pyc,sha256=_CfcpVGuo31Q5Bmk-UgTNJvhnTFcQ--y1Lzf1KrXghw,160
374
+ plexflow/core/torrents/__pycache__/__init__.cpython-312.pyc,sha256=Dh3-EcDVLfB2Sw6dG4fNzbkxJNbbXhby2kX0kE6VCdI,158
373
375
  plexflow/core/torrents/analyzers/__pycache__/analyzed_torrent.cpython-312.pyc,sha256=52uNjQjOQdFU9Bu9qXwp9YbFe9aYjA3HAAv1E9n7_yQ,9873
374
376
  plexflow/core/torrents/analyzers/__pycache__/analyzer.cpython-312.pyc,sha256=nNYXstIkDKPnl1_1R5rR88B7ES0l9WMQyeyax6EBrh4,2452
375
377
  plexflow/core/torrents/analyzers/analyzed_torrent.py,sha256=gsAr5RjYVXozWUaP3zShjXWFuB5a7CNotb6rvTRnAPg,4164
@@ -513,10 +515,10 @@ plexflow/core/torrents/providers/yts/utils.py,sha256=SYV7yohab-gF5Nj67fO8Lkus84-
513
515
  plexflow/core/torrents/providers/yts/yts.py,sha256=ykwJUm87cJZS2wSe8YKKXncdPNPmIpwtpwtWucCdxWE,1378
514
516
  plexflow/core/torrents/results/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
515
517
  plexflow/core/torrents/results/__pycache__/__init__.cpython-311.pyc,sha256=FJHx4wYMLA-6GPhdMPY5TUfw7JicV0HMgxCwlpbba54,180
516
- plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc,sha256=ZUXrXdVtbKDOsGXTY2h9h1GTk4atgBsFSsm-ffcVUUc,168
518
+ plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc,sha256=R6gHDW2Mf6MOoU7PPk7iLMe2kgPqao_Y6HbKAb5ZhUg,166
517
519
  plexflow/core/torrents/results/__pycache__/torrent.cpython-311.pyc,sha256=SxfylbSxF9gpzXvNey4Fv9XdKLjwm0a0LYlGFhg7zAY,7655
518
- plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc,sha256=gVBo7bTDY_6m9MmdgYy6fcnnoVQkXZiRI2iDANyG5RA,7776
519
- plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc,sha256=fWAmvqL76rp3K0_ydGNEHFJe-05duOvvo76ZpYjZQYE,14162
520
+ plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc,sha256=z8-iig6fvJcqj8R4C77wPLftziDCGuDg0uh_dlq2Qwc,8481
521
+ plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc,sha256=4YaHNJVbQ1E54TnIf0emht7-_nABH_pDRd_Ki3v5KDY,14162
520
522
  plexflow/core/torrents/results/__pycache__/utils.cpython-312.pyc,sha256=vqEt3jQLzZ-K_E9WV0kKz4K79AScvcg2xyOUTlAcu70,1136
521
523
  plexflow/core/torrents/results/torrent.py,sha256=hSYlP_0Uktumi4wzXqIJ-WRRi5YAlvrZVhf_treXDrI,5203
522
524
  plexflow/core/torrents/results/universal.py,sha256=ycprOMT1Px8IthmB82YhmnxeNt7P3GAcrOlEkpKoaQk,7706
@@ -552,7 +554,7 @@ plexflow/spiders/tgx/settings.py,sha256=A4bzof5TDLkMF6P_37otNY5e3b0Bwqia2vGmLwVO
552
554
  plexflow/spiders/tgx/spider.py,sha256=fBDksNThRm9bWjvEKeora6eiUKkxQBdISBaYOXIvjgM,2421
553
555
  plexflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
554
556
  plexflow/utils/__pycache__/__init__.cpython-311.pyc,sha256=504nnGOR-zQmysuOYNCQZsgbWiSz5kxnIWDWCQqOWnU,164
555
- plexflow/utils/__pycache__/__init__.cpython-312.pyc,sha256=gQczzDk6LWuAJ94zjl4MBby9pa1X9_AWPCL9y9JObjo,152
557
+ plexflow/utils/__pycache__/__init__.cpython-312.pyc,sha256=je7u5-_Rcwic9Fv9deKonSjBCSx4ytlRJs87KAvLKyk,150
556
558
  plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc,sha256=6fzUFt9uCeAKkPvA1QVz_miu2Fa-XiZMjpgY8VFp0kM,8593
557
559
  plexflow/utils/antibot/human_like_requests.py,sha256=-UKo2LgJtgp7CYggxPsUT74vfXyYosdbg5f-DzaEgQU,6116
558
560
  plexflow/utils/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -588,6 +590,7 @@ plexflow/utils/filesystem/search.py,sha256=ed2ixbx5r2z_xtk19--Dfi5KK9g3HcsaAk0sq
588
590
  plexflow/utils/gmail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
589
591
  plexflow/utils/gmail/__pycache__/mails.cpython-311.pyc,sha256=FAYfZzjLVqpPMjrEYcrOIsohtWrZYYXOZSUHod3r8Qg,7239
590
592
  plexflow/utils/gmail/mails.py,sha256=hQIXiYR5LYeoiSH_lhbVM9criDBnTeCNmpZ5tvuUnsA,4562
593
+ plexflow/utils/google/pubsub/consume.py,sha256=MG4bW0D2s_38xO88b_3-K8PtknNCxPnCVtPtnQzoHgA,1408
591
594
  plexflow/utils/google/pubsub/produce.py,sha256=AFlf6QZl6owA4QNzgrmed-d8lFbhsy-0bnMVVbAGNt4,713
592
595
  plexflow/utils/hooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
593
596
  plexflow/utils/hooks/__pycache__/__init__.cpython-311.pyc,sha256=vlT8vFKsxMRss2XuHLM6ouyTl7Wk1To76MVYXowIABs,170
@@ -604,9 +607,9 @@ plexflow/utils/image/__pycache__/storage.cpython-312.pyc,sha256=PuYT0whsl53o7lLL
604
607
  plexflow/utils/image/storage.py,sha256=RlV7D0aGqoG583xP8YCC7TK5YmW8rFff2NwvtOzy5DE,1168
605
608
  plexflow/utils/imdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
606
609
  plexflow/utils/imdb/__pycache__/__init__.cpython-311.pyc,sha256=Om33PdqDky-6oW50l1mrHRNKJISmC1j9wBn5OdA0Nxs,169
607
- plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc,sha256=kQiJSk5VmMtk5gkTSfO0cBCDoslIIPmMv9Yw4PsfjLs,163
610
+ plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc,sha256=HB4wxnIqRG2mIgj9A1l6jLVTmlCs7LF2nsnlDEdIh8Q,155
608
611
  plexflow/utils/imdb/__pycache__/imdb_codes.cpython-311.pyc,sha256=pGACYM3C88N41gMgFGz8L0evmhavIoineUeK8XPv3oU,4396
609
- plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc,sha256=Ai9d32GEjLtzcxQOAqVJks6ob4aU5fbrXXH8kJHkvag,4099
612
+ plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc,sha256=PqmomwWgbBJ4HdQHSwg2FIesLrR72Tbs58uoZWrjqQc,4092
610
613
  plexflow/utils/imdb/imdb_codes.py,sha256=aIECE9IEFSYbY3A-erONQiFUqy36JrH2hhcM3qWObk0,3028
611
614
  plexflow/utils/llm/mistral.py,sha256=OX_ogd7i3xzh7959O65oGzzfhuGRTFWsUwwmkShH7fs,4521
612
615
  plexflow/utils/pubsub/__pycache__/consume.cpython-312.pyc,sha256=QlvfpCEFCf53lhve-f1QdeNLhiVXRVkqtowp4n8is9w,3780
@@ -676,7 +679,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
676
679
  plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
677
680
  plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
678
681
  plexflow/utils/video/subtitle.py,sha256=LOGONGxs_RzmqtGP-DBKreOzS1eUFEKo75Q6AfnavW0,1290
679
- plexflow-0.0.92.dist-info/METADATA,sha256=KFluh3UpTaNVM05w_Qw8GR51NlFT2NHPueEoQpkorz4,2953
680
- plexflow-0.0.92.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
681
- plexflow-0.0.92.dist-info/entry_points.txt,sha256=aEqDHlozu_zjWrl2sibtrqtQHMgU8kSJZrE782CP47g,1362
682
- plexflow-0.0.92.dist-info/RECORD,,
682
+ plexflow-0.0.94.dist-info/METADATA,sha256=9cxdGwF1BaPB_wq_wGI3VMr7efFsP9usCinA8IMG5bE,3007
683
+ plexflow-0.0.94.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
684
+ plexflow-0.0.94.dist-info/entry_points.txt,sha256=Ek_W0j1EHddr5lmAdqwwRFzAczIjHG2JKyWYapnelX8,1408
685
+ plexflow-0.0.94.dist-info/RECORD,,
@@ -18,6 +18,7 @@ plex_activity_feed=scripts.plex.discover.get_activity_feed:main
18
18
  publish_hello_world=scripts.kafka.publish_hello_world:main
19
19
  read_from_gmail=scripts.plex.discover.read_from_gmail:main
20
20
  redis_hook=scripts.redis.redis_hook:main
21
+ schedule=scripts.downloads.qbit.schedule:main
21
22
  subscribe_hello_world=scripts.kafka.subscribe_hello_world:main
22
23
  tgx_context=scripts.torrents.tgx_context:main
23
24
  tgx_spider=scripts.spiders.tgx_spider:main