refactor: replace global tracker usage with state management in GUI and tracker utilities

This commit is contained in:
Vxrtrauter
2025-10-09 15:25:59 +02:00
parent 171a61b8ae
commit 13d0384a64
2 changed files with 11 additions and 13 deletions
+6 -10
View File
@@ -41,11 +41,8 @@ def pass_aria(aria):
global aria2process
aria2process = aria
global tracker
tracker = "rutracker" # default tracker
global api_url
api_url = "https://api.michijackson.xyz"
def create_tab(title, searchbar, software_list, tabs):
tab = QWidget()
@@ -143,8 +140,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
self.progress_timer.start(1000)
def set_tracker(self, _):
global tracker
tracker = self.tracker_list.currentText()
state.tracker = self.tracker_list.currentText()
def settings_dialog(self):
@@ -197,7 +193,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
api_url_layout.addWidget(text_edit)
api_url_container.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
api_url_container.setLayout(api_url_layout)
text_edit.setText(api_url)
text_edit.setText(state.api_url)
dialog.layout().addWidget(api_url_container)
# dialog.layout().addWidget(QtWidgets.QPushButton("Close", clicked=dialog.close))
@@ -225,7 +221,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
if item is not None:
if state.debug:
print(f"network {self.softwareList.currentItem().text()}")
self.run_thread(threading.Thread(target=get_item_index, args=(tracker, self.softwareList.currentItem().text(), self.postnames, self.postlinks, state.debug)))
self.run_thread(threading.Thread(target=get_item_index, args=(self.softwareList.currentItem().text(), self.postnames, self.postlinks, state.debug)))
else:
if state.debug:
print("No item selected for download.")
@@ -240,9 +236,9 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
return
if state.debug:
print("User searched for:", search_text)
if tracker == "uztracker":
if state.tracker == "uztracker":
response = asyncio.run(scrape_uztracker(search_text))
if tracker == "rutracker":
if state.tracker == "rutracker":
response = asyncio.run(scrape_rutracker(search_text))
if response:
self.postnames, self.postlinks = response
+5 -3
View File
@@ -2,14 +2,16 @@ import requests
from bs4 import BeautifulSoup
from core.network.aria2_wrapper import start_client
from core.network.aria2_wrapper import add_magnet
from core.utils.state import state
def get_item_index(tracker, item, list, listlinks, debug):
def get_item_index(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":
if state.tracker == "uztracker":
selected = "https://uztracker.net/" + listlinks[position].lstrip("./")
if tracker == "rutracker":
if state.tracker == "rutracker":
selected = listlinks[position]
if debug: