plexflow 0.0.93__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.
- plexflow/core/__pycache__/__init__.cpython-312.pyc +0 -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/download_candidate.py +4 -0
- plexflow/core/downloads/qbit/__pycache__/schedule.cpython-312.pyc +0 -0
- plexflow/core/downloads/qbit/schedule.py +24 -0
- plexflow/core/subtitles/__pycache__/__init__.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/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc +0 -0
- plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc +0 -0
- plexflow/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc +0 -0
- {plexflow-0.0.93.dist-info → plexflow-0.0.94.dist-info}/METADATA +2 -1
- {plexflow-0.0.93.dist-info → plexflow-0.0.94.dist-info}/RECORD +21 -19
- {plexflow-0.0.93.dist-info → plexflow-0.0.94.dist-info}/entry_points.txt +1 -0
- {plexflow-0.0.93.dist-info → plexflow-0.0.94.dist-info}/WHEEL +0 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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.")
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: plexflow
|
3
|
-
Version: 0.0.
|
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=
|
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=
|
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=
|
66
|
-
plexflow/core/downloads/candidates/__pycache__/download_candidate.cpython-312.pyc,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
519
|
-
plexflow/core/torrents/results/__pycache__/universal.cpython-312.pyc,sha256=
|
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=
|
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
|
@@ -605,9 +607,9 @@ plexflow/utils/image/__pycache__/storage.cpython-312.pyc,sha256=PuYT0whsl53o7lLL
|
|
605
607
|
plexflow/utils/image/storage.py,sha256=RlV7D0aGqoG583xP8YCC7TK5YmW8rFff2NwvtOzy5DE,1168
|
606
608
|
plexflow/utils/imdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
607
609
|
plexflow/utils/imdb/__pycache__/__init__.cpython-311.pyc,sha256=Om33PdqDky-6oW50l1mrHRNKJISmC1j9wBn5OdA0Nxs,169
|
608
|
-
plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc,sha256=
|
610
|
+
plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc,sha256=HB4wxnIqRG2mIgj9A1l6jLVTmlCs7LF2nsnlDEdIh8Q,155
|
609
611
|
plexflow/utils/imdb/__pycache__/imdb_codes.cpython-311.pyc,sha256=pGACYM3C88N41gMgFGz8L0evmhavIoineUeK8XPv3oU,4396
|
610
|
-
plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc,sha256=
|
612
|
+
plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc,sha256=PqmomwWgbBJ4HdQHSwg2FIesLrR72Tbs58uoZWrjqQc,4092
|
611
613
|
plexflow/utils/imdb/imdb_codes.py,sha256=aIECE9IEFSYbY3A-erONQiFUqy36JrH2hhcM3qWObk0,3028
|
612
614
|
plexflow/utils/llm/mistral.py,sha256=OX_ogd7i3xzh7959O65oGzzfhuGRTFWsUwwmkShH7fs,4521
|
613
615
|
plexflow/utils/pubsub/__pycache__/consume.cpython-312.pyc,sha256=QlvfpCEFCf53lhve-f1QdeNLhiVXRVkqtowp4n8is9w,3780
|
@@ -677,7 +679,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
|
|
677
679
|
plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
|
678
680
|
plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
|
679
681
|
plexflow/utils/video/subtitle.py,sha256=LOGONGxs_RzmqtGP-DBKreOzS1eUFEKo75Q6AfnavW0,1290
|
680
|
-
plexflow-0.0.
|
681
|
-
plexflow-0.0.
|
682
|
-
plexflow-0.0.
|
683
|
-
plexflow-0.0.
|
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
|
File without changes
|