plexflow 0.0.118__py3-none-any.whl → 0.0.119__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 +1 -0
- plexflow/core/context/partials/torrent_blacklist.py +18 -0
- plexflow/core/downloads/qbit/interface.py +2 -2
- {plexflow-0.0.118.dist-info → plexflow-0.0.119.dist-info}/METADATA +1 -1
- {plexflow-0.0.118.dist-info → plexflow-0.0.119.dist-info}/RECORD +7 -6
- {plexflow-0.0.118.dist-info → plexflow-0.0.119.dist-info}/WHEEL +0 -0
- {plexflow-0.0.118.dist-info → plexflow-0.0.119.dist-info}/entry_points.txt +0 -0
@@ -13,3 +13,4 @@ from plexflow.core.context.partials.candidates import Candidates
|
|
13
13
|
from plexflow.core.context.partials.completed_downloads import CompletedDownloads
|
14
14
|
from plexflow.core.context.partials.movie_assets import MovieAssets
|
15
15
|
from plexflow.core.context.partials.torrent_deadline import TorrentDeadline
|
16
|
+
from plexflow.core.context.partials.torrent_blacklist import TorrentBlacklist
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from plexflow.core.context.partial_context import PartialContext
|
2
|
+
from qbittorrentapi.torrents import TorrentDictionary
|
3
|
+
|
4
|
+
class TorrentBlacklist(PartialContext):
|
5
|
+
def __init__(self, **kwargs) -> None:
|
6
|
+
super().__init__(**kwargs)
|
7
|
+
|
8
|
+
def ban(self, torrent: TorrentDictionary):
|
9
|
+
hash = torrent.hash
|
10
|
+
key = f"blacklist/torrents/{hash}"
|
11
|
+
self.set_global(key, torrent)
|
12
|
+
|
13
|
+
def is_banned(self, hash: str) -> bool:
|
14
|
+
try:
|
15
|
+
torrent = self.get_global(f"blacklist/torrents/{hash}")
|
16
|
+
return isinstance(torrent, TorrentDictionary)
|
17
|
+
except:
|
18
|
+
return False
|
@@ -61,9 +61,9 @@ def is_completed(torrent: TorrentDictionary) -> bool:
|
|
61
61
|
def is_downloading(torrent: TorrentDictionary) -> bool:
|
62
62
|
return torrent.state in [
|
63
63
|
"downloading",
|
64
|
-
"stalled_downloading",
|
64
|
+
# "stalled_downloading",
|
65
65
|
"checking",
|
66
|
-
"stalledDL",
|
66
|
+
# "stalledDL",
|
67
67
|
"forcedDL",
|
68
68
|
]
|
69
69
|
|
@@ -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=684qHyQ-ulkZnXm-CMmhP7ont-9lIi1WEAbLTjyS4kA,2301
|
23
|
-
plexflow/core/context/partials/__init__.py,sha256=
|
23
|
+
plexflow/core/context/partials/__init__.py,sha256=YUZlUl6vZlFV4ncwezVX1fDKs0B9gwUIXVyqkIPzMQ8,1068
|
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
|
@@ -35,6 +35,7 @@ plexflow/core/context/partials/reports.py,sha256=0W58RwK3VSsVHbF0rhvMNNlZZr01eut
|
|
35
35
|
plexflow/core/context/partials/subtitles.py,sha256=0NhKGkP-sArQswuSyA7puRSjjoobF-3Ah7Pd39QkgTU,535
|
36
36
|
plexflow/core/context/partials/tgx_batch.py,sha256=TduB09oBOQ8CtmPYsHIeNe7AI-ypKw21zQAX-7qktEs,859
|
37
37
|
plexflow/core/context/partials/tgx_context.py,sha256=_FuhOvKsFqi_uynHxgC9_QIR2CfYmz-uJCRFtGFJmXI,1641
|
38
|
+
plexflow/core/context/partials/torrent_blacklist.py,sha256=6Uf65CF7M-JdgDt3k4Hi9WIpMkabp2eI4Ryubhjco0s,623
|
38
39
|
plexflow/core/context/partials/torrent_deadline.py,sha256=Nr5HqvAy0VT-GSd9eYPkUtKZqHpWhniE9P51xXFOji8,782
|
39
40
|
plexflow/core/context/partials/torrents.py,sha256=GtO4rlb7V2N-4QEWt-ODssEsdUlQ2o0lTo_BFI5i3lw,1109
|
40
41
|
plexflow/core/context/partials/universal_torrents.py,sha256=yohdSEhspSdvmrI6NeBB2Racb7yS2kz7qyFat6gNw6k,563
|
@@ -77,7 +78,7 @@ plexflow/core/downloads/candidates/rank/utils.py,sha256=R4Ai4KmZRONo9vd2rf32DdGx
|
|
77
78
|
plexflow/core/downloads/candidates/utils.py,sha256=BnuDSRjU9mVYSh9ejKgfvlLi0bWEqc07uLyskC-bYhw,1874
|
78
79
|
plexflow/core/downloads/qbit/__pycache__/interface.cpython-312.pyc,sha256=szUoTWpZNpHwJ0OnXer8ZLeAYIvHND-rX1lB2Juv-J4,3335
|
79
80
|
plexflow/core/downloads/qbit/__pycache__/schedule.cpython-312.pyc,sha256=ESOLrk6sLpb1mtijuDGNKvAHaYopVQBwSDzdt8dFNow,1350
|
80
|
-
plexflow/core/downloads/qbit/interface.py,sha256=
|
81
|
+
plexflow/core/downloads/qbit/interface.py,sha256=QeBxe786H-JANSMEwueTE1t9xwYSZ3Ewkng8Me0_xC0,2440
|
81
82
|
plexflow/core/downloads/qbit/schedule.py,sha256=5w3JpbIGRc5xS_ZjfKXMXywi-2NXL_2y_Izx0DmUGnE,907
|
82
83
|
plexflow/core/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
84
|
plexflow/core/env/env.py,sha256=8cK49WiKD_H3B9K0QiMu7pkXTld40ojRB3sK7noQM44,953
|
@@ -697,7 +698,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=vXBnJwWgTDFdixMBs-
|
|
697
698
|
plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
|
698
699
|
plexflow/utils/video/audio.py,sha256=tJ_lNwcjVuBQYD5cYOlXpr__eh8-hnReIgNRgIYOpqo,3380
|
699
700
|
plexflow/utils/video/subtitle.py,sha256=qPvvBjlPj0fynJJvGJgGeKt9ey26R-cF6EoLaYt9iXU,1333
|
700
|
-
plexflow-0.0.
|
701
|
-
plexflow-0.0.
|
702
|
-
plexflow-0.0.
|
703
|
-
plexflow-0.0.
|
701
|
+
plexflow-0.0.119.dist-info/METADATA,sha256=GfzyAhubItgqL_NBauP7ANbZNmvFiqhdpD_vsnIN1Hc,3094
|
702
|
+
plexflow-0.0.119.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
703
|
+
plexflow-0.0.119.dist-info/entry_points.txt,sha256=SSLjrLcZa2880346VUIsCG9vcLsquf-RTX9pkdNaTO8,1498
|
704
|
+
plexflow-0.0.119.dist-info/RECORD,,
|
File without changes
|
File without changes
|