From 9e7607dd361de524d5992a381ddd0b9f7177a293 Mon Sep 17 00:00:00 2001 From: Vxrtrauter <101264710+Vxrtrauter@users.noreply.github.com> Date: Sat, 21 Mar 2026 02:03:49 +0100 Subject: [PATCH] refactor: get_magnet to get_download_link Rename scraper method get_magnet -> get_download_link in monkrus, rutracker and uztracker. Update downloader code to call .get_download_link and use the .is_magnet flag on tracker objects (replace dict access). Switch direct_download package imports to absolute paths and perform a small import reorder in direct_download/utils.py. These changes unify the download API and adapt call sites to the new tracker interface. --- src/data/sources/monkrus.py | 2 +- src/data/sources/rutracker.py | 2 +- src/data/sources/uztracker.py | 2 +- src/network/direct_download/__init__.py | 4 ++-- src/network/direct_download/utils.py | 2 +- src/utils/network/download.py | 6 +++--- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/data/sources/monkrus.py b/src/data/sources/monkrus.py index 3386d22..f45e32a 100644 --- a/src/data/sources/monkrus.py +++ b/src/data/sources/monkrus.py @@ -74,5 +74,5 @@ class MonkrusScraper: return filtered_posts - def get_magnet(self, post: Dict): + def get_download_link(self, post: Dict): return get_magnet_link(post["url"]) diff --git a/src/data/sources/rutracker.py b/src/data/sources/rutracker.py index 9f48bfc..73b6a4b 100644 --- a/src/data/sources/rutracker.py +++ b/src/data/sources/rutracker.py @@ -40,7 +40,7 @@ class RutrackerScraper: consoleLog("No response from server, returning nothing") return [] - def get_magnet(self, post: Dict): + def get_download_link(self, post: Dict): _, post_links, _, _, _ = format_data([post]) return get_magnet_link(post_links[0]) diff --git a/src/data/sources/uztracker.py b/src/data/sources/uztracker.py index 4b4dfd7..027394e 100644 --- a/src/data/sources/uztracker.py +++ b/src/data/sources/uztracker.py @@ -45,6 +45,6 @@ class UztrackerScraper: consoleLog(f"Failed to fetch {search_url}: {e}") return None - def get_magnet(self, post: Dict): + def get_download_link(self, post: Dict): return get_magnet_link(post["url"]) diff --git a/src/network/direct_download/__init__.py b/src/network/direct_download/__init__.py index 3d6f8b2..a082b51 100644 --- a/src/network/direct_download/__init__.py +++ b/src/network/direct_download/__init__.py @@ -3,8 +3,8 @@ from utils.data.state import state from typing import Optional -from .handle import DirectDownloadHandle -from .utils import ( +from network.direct_download.handle import DirectDownloadHandle +from network.direct_download.utils import ( sanitize_filename, extract_filename_from_url, detect_filename_from_headers, diff --git a/src/network/direct_download/utils.py b/src/network/direct_download/utils.py index 20948f6..2b70b58 100644 --- a/src/network/direct_download/utils.py +++ b/src/network/direct_download/utils.py @@ -1,5 +1,5 @@ -from utils.logging.logs import consoleLog from urllib.parse import urlparse, unquote +from utils.logging.logs import consoleLog from typing import Optional import requests import os diff --git a/src/utils/network/download.py b/src/utils/network/download.py index a6b5953..86a8152 100644 --- a/src/utils/network/download.py +++ b/src/utils/network/download.py @@ -31,9 +31,9 @@ def download_selected(items: list[QTableWidgetItem]): run_thread(threading.Thread(target=run_download, args=(post,))) def run_download(post, headers: Optional[dict] = None): - linkfunc = state.trackers[state.currenttracker]["linkFunc"] - ismagnet = state.trackers[state.currenttracker]["isMagnet"] - result = linkfunc(post) + link_method = state.trackers[state.currenttracker].get_download_link + ismagnet = state.trackers[state.currenttracker].is_magnet + result = link_method(post) if ismagnet: link = result