Add Search Results to Gui, Restructure Functions, Split Scrape and Select Function.

This commit is contained in:
Vxrtrauter
2025-06-28 03:42:05 +02:00
parent 84c54870ab
commit 5863f65a0a
3 changed files with 55 additions and 22 deletions
+17 -2
View File
@@ -2,10 +2,14 @@ from PySide6 import QtWidgets
from PySide6.QtCore import Qt from PySide6.QtCore import Qt
from PySide6.QtWidgets import QLayoutItem, QLineEdit, QWidget, QVBoxLayout, QHBoxLayout, QListWidget, QListWidgetItem, QLabel, QPushButton from PySide6.QtWidgets import QLayoutItem, QLineEdit, QWidget, QVBoxLayout, QHBoxLayout, QListWidget, QListWidgetItem, QLabel, QPushButton
import sys import sys
from uztracker_scraper import scrape_uztracker
class MainWindow(QtWidgets.QMainWindow, QWidget): class MainWindow(QtWidgets.QMainWindow, QWidget):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
searchresults = []
self.setWindowTitle("Software Manager") self.setWindowTitle("Software Manager")
self.setGeometry(100, 100, 800, 600) self.setGeometry(100, 100, 800, 600)
@@ -27,7 +31,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
containerLayout.addWidget(self.searchbar) containerLayout.addWidget(self.searchbar)
containerLayout.addWidget(self.softwareList) containerLayout.addWidget(self.softwareList)
self.softwareList.addItems(["Software A", "Software B", "Software C", "Software D"]) self.softwareList.addItems(searchresults)
containerLayout.addWidget(self.button) containerLayout.addWidget(self.button)
self.button.clicked.connect(lambda: print(f"Downloading {self.softwareList.currentItem().text()}")) self.button.clicked.connect(lambda: print(f"Downloading {self.softwareList.currentItem().text()}"))
@@ -39,12 +43,23 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
def return_pressed(self): def return_pressed(self):
search_text = self.searchbar.text() search_text = self.searchbar.text()
global searchresults
self.searchresults = scrape_uztracker(search_text)
self.softwareList.clear()
if self.searchresults:
self.softwareList.addItems(self.searchresults)
print("User searched for:", search_text) print("User searched for:", search_text)
if __name__ == "__main__":
def run_gui():
app = QtWidgets.QApplication([]) app = QtWidgets.QApplication([])
widget = MainWindow() widget = MainWindow()
widget.show() widget.show()
sys.exit(app.exec()) sys.exit(app.exec())
if __name__ == "__main__":
run_gui()
+28 -19
View File
@@ -6,13 +6,15 @@ url_uztracker = "https://uztracker.net/tracker.php?nm=" # placeholder url for no
response = requests.get(url_uztracker) # get da content from da url response = requests.get(url_uztracker) # get da content from da url
soup = BeautifulSoup(response.content, 'html.parser') # create bs object soup = BeautifulSoup(response.content, 'html.parser') # create bs object
def scrape_uztracker(): def scrape_uztracker(search):
search = input("Enter the name of the program you want to search for: ")
search_url = url_uztracker + search search_url = url_uztracker + search
print(search_url) print(search_url)
result = False result = False
global results global results
global resulttitles
results = [] results = []
resulttitles = []
try: try:
resultCount = 0 resultCount = 0
response = requests.get(search_url) response = requests.get(search_url)
@@ -22,31 +24,20 @@ def scrape_uztracker():
for link in links: for link in links:
if link.b: if link.b:
resultCount += 1 resultCount += 1
print(f"Result found: ({resultCount}) {link.b.text} | {link['href']}")
# print(f"Result found: ({resultCount}) {link.b.text} | {link['href']}")
results.append(link['href']) results.append(link['href'])
resulttitles.append(link.b.text)
result = True result = True
if result:
return resulttitles
if not result: if not result:
print(f'No Results found for "{search}"') print(f'No Results found for "{search}"')
return return
selection = input("Enter the Number of the Program you want to download: ")
try:
index = int(selection) - 1
if 0 <= index < len(results): # note for myself: py starts counting at 0; check if number is not negative, check if number is not more than list length.
selected = "https://uztracker.net/" + results[index].lstrip("./")
post_url = selected
return selected
else:
print("Invalid Selection.")
except ValueError:
print(Exception)
return
except requests.RequestException as e: except requests.RequestException as e:
print(f"Failed to fetch {search_url}: {e}") print(f"Failed to fetch {search_url}: {e}")
@@ -61,6 +52,24 @@ def get_post_title(post_url):
else: else:
print("Program not found") print("Program not found")
def select_program():
selection = input("Enter the Number of the Program you want to download: ")
try:
index = int(selection) - 1
if 0 <= index < len(results): # note for myself: py starts counting at 0; check if number is not negative, check if number is not more than list length.
selected = "https://uztracker.net/" + results[index].lstrip("./")
post_url = selected
return selected
else:
print("Invalid Selection.")
except ValueError:
print(Exception)
return
def get_magnet_link(post_url): def get_magnet_link(post_url):
try: try:
+10 -1
View File
@@ -1,5 +1,12 @@
import core.gui as gui import core.gui as gui
from core.uztracker_scraper import scrape_uztracker, get_post_title from core.uztracker_scraper import scrape_uztracker, get_post_title, get_magnet_link
from core.gui import run_gui
@@ -8,7 +15,9 @@ from core.uztracker_scraper import scrape_uztracker, get_post_title
post_url = scrape_uztracker() post_url = scrape_uztracker()
if post_url: if post_url:
maintitle = get_post_title(post_url) maintitle = get_post_title(post_url)
magnetlink = get_magnet_link(post_url)
print(maintitle) print(maintitle)
print(magnetlink)