From 0184b10a5f32520f6eb5aa4852576887a8145a53 Mon Sep 17 00:00:00 2001 From: Vxrtrauter Date: Thu, 9 Oct 2025 14:31:21 +0200 Subject: [PATCH] refactor: move get_item_index and get_magnet_link functions to tracker_utils.py --- core/data/utils.py | 21 ----------------- core/data/utils/tracker_utils.py | 40 ++++++++++++++++++++++++++++++++ core/interface/gui.py | 21 +++-------------- 3 files changed, 43 insertions(+), 39 deletions(-) delete mode 100644 core/data/utils.py create mode 100644 core/data/utils/tracker_utils.py diff --git a/core/data/utils.py b/core/data/utils.py deleted file mode 100644 index 3c4d223..0000000 --- a/core/data/utils.py +++ /dev/null @@ -1,21 +0,0 @@ -import requests -from bs4 import BeautifulSoup - - -def get_magnet_link(post_url, debug): - try: - response = requests.get(post_url) - response.raise_for_status() - soup = BeautifulSoup(response.text, 'html.parser') - magnet_link = soup.find('a', href=lambda x: x and x.startswith('magnet:')) - if magnet_link: - if debug: - print("Magnet Link Retrieved: ", magnet_link['href']) - return magnet_link['href'] - else: - if debug: - print("Magnet Link not Found!") - except requests.RequestException as e: - if debug: - print(f"Failed to fetch {post_url}: {e}") - return None \ No newline at end of file diff --git a/core/data/utils/tracker_utils.py b/core/data/utils/tracker_utils.py new file mode 100644 index 0000000..45799ad --- /dev/null +++ b/core/data/utils/tracker_utils.py @@ -0,0 +1,40 @@ +import requests +from bs4 import BeautifulSoup +from core.network.aria2_wrapper import start_client +from core.network.aria2_wrapper import add_magnet + + +def get_item_index(tracker, item, list, listlinks, debug): + position = list.index(item) + if 0 <= position < len(listlinks): # note for myself: py starts counting at 0; check if number is not negative, check if number is not more than list length. + if tracker == "uztracker": + selected = "https://uztracker.net/" + listlinks[position].lstrip("./") + if tracker == "rutracker": + selected = listlinks[position] + + if debug: + print("Selected URL: ", selected) + selected_magnet = get_magnet_link(selected, debug) + start_client() + add_magnet(selected_magnet) + + + + +def get_magnet_link(post_url, debug): + try: + response = requests.get(post_url) + response.raise_for_status() + soup = BeautifulSoup(response.text, 'html.parser') + magnet_link = soup.find('a', href=lambda x: x and x.startswith('magnet:')) + if magnet_link: + if debug: + print("Magnet Link Retrieved: ", magnet_link['href']) + return magnet_link['href'] + else: + if debug: + print("Magnet Link not Found!") + except requests.RequestException as e: + if debug: + print(f"Failed to fetch {post_url}: {e}") + return None \ No newline at end of file diff --git a/core/interface/gui.py b/core/interface/gui.py index 1b294c0..fa2aaa4 100644 --- a/core/interface/gui.py +++ b/core/interface/gui.py @@ -21,13 +21,12 @@ import darkdetect import threading from core.data.scrapers.uztracker import scrape_uztracker from core.data.scrapers.rutracker import scrape_rutracker -from core.data.utils import get_magnet_link -from core.network.aria2_wrapper import start_client -from core.network.aria2_wrapper import add_magnet +from core.data.utils.tracker_utils import get_item_index from core.network.aria2_integration import dlprogress, set_threads + def state_debug(setting): global debug if setting is True: @@ -243,7 +242,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): if item is not None: if debug: print(f"network {self.softwareList.currentItem().text()}") - self.run_thread(threading.Thread(target=self.get_item_index, args=(self.softwareList.currentItem().text(), self.postnames, self.postlinks, debug))) + self.run_thread(threading.Thread(target=get_item_index, args=(tracker, self.softwareList.currentItem().text(), self.postnames, self.postlinks, debug))) else: if debug: print("No item selected for download.") @@ -273,20 +272,6 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): self.softwareList.addItem("No Results") - def get_item_index(self, item, list, listlinks, debug): - position = list.index(item) - if 0 <= position < len(listlinks): # note for myself: py starts counting at 0; check if number is not negative, check if number is not more than list length. - if tracker == "uztracker": - selected = "https://uztracker.net/" + listlinks[position].lstrip("./") - if tracker == "rutracker": - selected = listlinks[position] - - if debug: - print("Selected URL: ", selected) - selected_magnet = get_magnet_link(selected, debug) - start_client() - add_magnet(selected_magnet) - def update_progress(self): progress = dlprogress() self.progressbar.setValue(progress)