From e3ca73e6003eeb597d299ddeb26b78e2817da2e2 Mon Sep 17 00:00:00 2001 From: KeksNino Date: Mon, 8 Sep 2025 21:28:42 +0200 Subject: [PATCH] added rutracker as option. check full message IMPORTANT: doesnt have error handling fo no result will add a gui option in the future --- core/scraping/uztracker_scraper.py | 3 ++ core/ui/gui.py | 79 ++++++++++++++++++++++++++++-- main.py | 3 +- 3 files changed, 79 insertions(+), 6 deletions(-) diff --git a/core/scraping/uztracker_scraper.py b/core/scraping/uztracker_scraper.py index f40842b..2d07d66 100644 --- a/core/scraping/uztracker_scraper.py +++ b/core/scraping/uztracker_scraper.py @@ -103,6 +103,7 @@ def get_magnet_link(post_url, debug): # x - check if x exists (not None/empty) # and - if x exists, THEN check the next part # x.startswith('magnet:') - does x start with "magnet:"? +<<<<<<< HEAD @@ -116,3 +117,5 @@ def get_item_index(item, list, listlinks, debug): selected_magnet = get_magnet_link(selected, debug) start_client() add_magnet(selected_magnet) +======= +>>>>>>> af99e99 (added rutracker as option. check full message) diff --git a/core/ui/gui.py b/core/ui/gui.py index c72d2ac..63b1e9e 100644 --- a/core/ui/gui.py +++ b/core/ui/gui.py @@ -3,17 +3,30 @@ from PySide6.QtCore import Qt from PySide6.QtWidgets import QLineEdit, QPushButton, QWidget, QVBoxLayout, QListWidget, QToolBar, QDialogButtonBox, QRadioButton, QGroupBox, QDialog, QVBoxLayout, QLabel, QHBoxLayout from PySide6.QtGui import QIcon, QAction import darkdetect +import requests from core.scraping.uztracker_scraper import scrape_uztracker from core.scraping.uztracker_scraper import get_item_index - def state_debug(setting): global debug if setting is True: debug = True else: debug = False + +def choose_tracker(): + global rutracker + choice = input("use rutracker? (y/n): ") + print(choice) + if choice.lower() == 'y': + print("Using rutracker...") + rutracker = True + else: + print("Using uztracker...") + rutracker = False + + class MainWindow(QtWidgets.QMainWindow, QWidget): def __init__(self): global settings_action @@ -102,13 +115,29 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): def download_selected(self): item = self.softwareList.currentItem() +<<<<<<< HEAD if item is not None: if debug: print(f"Downloading {self.softwareList.currentItem().text()}") get_item_index(self.softwareList.currentItem().text(), self.postnames, self.postlinks, debug) +======= + if rutracker == True: + if item is not None: + if debug: + print(f"Downloading {self.softwareList.currentItem().text()}") + self.get_item_index(self.softwareList.currentItem().text(), self.postnames_rutracker, self.postlinks_rutracker, debug) + else: + if debug: + print("No item selected for download.") +>>>>>>> af99e99 (added rutracker as option. check full message) else: - if debug: - print("No item selected for download.") + if item is not None: + if debug: + print(f"Downloading {self.softwareList.currentItem().text()}") + self.get_item_index(self.softwareList.currentItem().text(), self.postnames_uztracker, self.postlinks_uztracker, debug) + else: + if debug: + print("No item selected for download.") # add gui notification for no item selected @@ -117,10 +146,10 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): if item is not None: return item.text() return "" - - + def return_pressed(self): +<<<<<<< HEAD search_text = self.searchbar.text() if debug: print("User searched for:", search_text) @@ -138,3 +167,43 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): +======= + if rutracker == True: + global postnames + global postlinks + search_text = self.searchbar.text() + search = requests.get(f"https://pizzasucht.net/search/{search_text}") + self.softwareList.clear() + data = search.json() + self.postnames_rutracker = data["titles"] + for self.postnames_rutracker in data["titles"]: + self.softwareList.addItem(self.postnames_rutracker) + self.postnames_rutracker = data["titles"] + self.postlinks_rutracker = data["links"] + else: + search_text = self.searchbar.text() + if debug: + print("User searched for:", search_text) + + response = scrape_uztracker(search_text, debug) + if response: + self.postnames_uztracker, self.postlinks_uztracker = response + self.softwareList.clear() + if self.postnames_uztracker: + self.softwareList.addItems(self.postnames_uztracker) + elif debug: + print(f"No Results found for \"{search_text}\"") + + 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 rutracker == True: + selected = listlinks[position] + else: + selected = "https://uztracker.net/" + listlinks[position].lstrip("./") + if debug: + print("Selected URL: ", selected) + selected_magnet = get_magnet_link(selected, debug) + start_client() + add_magnet(selected_magnet) +>>>>>>> af99e99 (added rutracker as option. check full message) diff --git a/main.py b/main.py index 07de043..cbf4a6f 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ from core.ui.gui import MainWindow from core.ui.gui import state_debug +from core.ui.gui import choose_tracker from PySide6 import QtWidgets import qdarktheme import darkdetect @@ -9,6 +10,7 @@ debug = True def run_gui(): state_debug(debug) + choose_tracker() app = QtWidgets.QApplication([]) if darkdetect.isDark: app.setStyleSheet(qdarktheme.load_stylesheet("dark")) @@ -18,6 +20,5 @@ def run_gui(): widget.show() sys.exit(app.exec()) - if __name__ == "__main__": run_gui()