Skip to content

Commit b168fc1

Browse files
committed
Bugfix in remove_slow (un-initiated defective tracker)
1 parent 2f4ed92 commit b168fc1

File tree

4 files changed

+29
-14
lines changed

4 files changed

+29
-14
lines changed

config/config_example.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
message_patterns:
2323
- Not a Custom Format upgrade for existing*
2424
- Not an upgrade for existing*
25-
- \*Found potentially dangerous file with extension*
25+
# - \*Found potentially dangerous file with extension*
2626
remove_metadata_missing:
2727
# max_strikes: 3
2828
remove_missing_files:

src/jobs/removal_job.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ def __init__(self, arr, settings, job_name) -> None:
2323
self.job_name = job_name
2424
self.job = getattr(self.settings.jobs, self.job_name)
2525
self.queue_manager = QueueManager(self.arr, self.settings)
26+
self.max_strikes = getattr(self.job, "max_strikes", None)
27+
if self.max_strikes:
28+
self.strikes_handler = StrikesHandler(job_name=self.job_name, arr=self.arr, max_strikes=self.max_strikes)
2629

2730

2831
async def run(self) -> int:
@@ -52,10 +55,8 @@ async def run(self) -> int:
5255
return len(self.affected_downloads)
5356

5457
def _check_strikes_handler(self):
55-
max_strikes = getattr(self.job, "max_strikes", None)
56-
if max_strikes:
57-
strikes_handler = StrikesHandler(job_name=self.job_name, arr=self.arr, max_strikes=max_strikes)
58-
self.affected_downloads = strikes_handler.check_permitted_strikes(self.affected_downloads)
58+
if self.max_strikes:
59+
self.affected_downloads = self.strikes_handler.check_permitted_strikes(self.affected_downloads)
5960

6061
def _ignore_protected(self):
6162
"""

src/jobs/remove_slow.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,16 @@ def _compute_increment_and_speed(self, download_id, current_progress):
126126

127127
def _high_bandwidth_usage(self, item):
128128
download_id = item["downloadId"]
129-
tracker_entry = self.arr.tracker.defective[self.job_name].get(download_id)
130-
if tracker_entry:
131-
tracker_entry.pop("tracking_paused", None)
132-
tracker_entry.pop("pause_reason", None)
129+
download_client = item["download_client"]
130+
download_client_type = item["download_client_type"]
131+
132+
self.strikes_handler.unpause_entry(download_id)
133133

134-
download_client=item["download_client"]
135-
download_client_type=item["download_client_type"]
136134
if download_client_type == "qbittorrent":
137135
if download_client.bandwidth_usage > DISABLE_OVER_BANDWIDTH_USAGE:
138-
if tracker_entry:
139-
tracker_entry["tracking_paused"] = True
140-
tracker_entry["pause_reason"] = "High Bandwidth Usage"
136+
self.strikes_handler.pause_entry(download_id, "High Bandwidth Usage")
141137
return True
138+
142139
return False
143140

144141
async def add_download_client_to_queue_items(self):

src/jobs/strikes_handler.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,23 @@ def check_permitted_strikes(self, affected_downloads):
1515
self.log_change(recovered, paused, affected_downloads)
1616
return affected_downloads
1717

18+
def get_entry(self, download_id):
19+
return self.tracker.defective[self.job_name].get(download_id)
20+
21+
def pause_entry(self, download_id, reason):
22+
entry = self.get_entry(download_id)
23+
if entry:
24+
entry["tracking_paused"] = True
25+
entry["pause_reason"] = reason
26+
logger.debug("strikes_handler.py/StrikesHandler/pause_entry: Paused tracking for %s due to: %s", download_id, reason)
27+
28+
def unpause_entry(self, download_id):
29+
entry = self.get_entry(download_id)
30+
if entry:
31+
entry.pop("tracking_paused", None)
32+
entry.pop("pause_reason", None)
33+
logger.debug("strikes_handler.py/StrikesHandler/unpause_entry: Unpaused tracking for %s", download_id)
34+
1835
def log_change(self, recovered, paused, affected_items):
1936
"""
2037
Logs changes in strike tracking:

0 commit comments

Comments
 (0)