mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-03 17:39:42 +02:00
81 lines
2.5 KiB
Python
81 lines
2.5 KiB
Python
from PySide6 import QtWidgets
|
|
from PySide6.QtCore import Qt
|
|
from PySide6.QtWidgets import QLineEdit, QWidget, QVBoxLayout, QListWidget
|
|
import sys
|
|
from uztracker_scraper import scrape_uztracker
|
|
from uztracker_scraper import get_magnet_link
|
|
from downloading.download import start_client
|
|
from downloading.download import add_magnet
|
|
|
|
|
|
class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
searchresults = []
|
|
|
|
self.setWindowTitle("Software Manager")
|
|
self.setGeometry(100, 100, 800, 600)
|
|
|
|
self.controls = QWidget()
|
|
self.controlsLayout = QVBoxLayout()
|
|
|
|
# Widgets
|
|
self.searchbar = QLineEdit()
|
|
self.searchbar.setPlaceholderText("Search for software...")
|
|
self.searchbar.setClearButtonEnabled(True)
|
|
self.searchbar.setMinimumHeight(30)
|
|
self.searchbar.returnPressed.connect(self.return_pressed)
|
|
|
|
self.button = QtWidgets.QPushButton("Download")
|
|
self.softwareList = QListWidget()
|
|
|
|
container = QWidget()
|
|
containerLayout = QVBoxLayout()
|
|
containerLayout.addWidget(self.searchbar)
|
|
|
|
containerLayout.addWidget(self.softwareList)
|
|
self.softwareList.addItems(searchresults)
|
|
|
|
containerLayout.addWidget(self.button)
|
|
self.button.clicked.connect(lambda: get_item_index(self.softwareList.currentItem().text(), self.postnames, self.postlinks))
|
|
|
|
container.setLayout(containerLayout)
|
|
self.setCentralWidget(container)
|
|
|
|
containerLayout.setAlignment(Qt.AlignmentFlag.AlignBottom)
|
|
|
|
def return_pressed(self):
|
|
search_text = self.searchbar.text()
|
|
self.postnames, self.postlinks = scrape_uztracker(search_text)
|
|
self.softwareList.clear()
|
|
if self.postnames:
|
|
self.softwareList.addItems(self.postnames)
|
|
print("User searched for:", search_text)
|
|
|
|
|
|
|
|
def get_item_index(item, list, listlinks):
|
|
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.
|
|
selected = "https://uztracker.net/" + listlinks[position].lstrip("./")
|
|
post_url = selected
|
|
print(selected)
|
|
selected_magnet = get_magnet_link(selected)
|
|
add_magnet(selected_magnet)
|
|
|
|
|
|
|
|
|
|
def run_gui():
|
|
app = QtWidgets.QApplication([])
|
|
|
|
widget = MainWindow()
|
|
widget.show()
|
|
|
|
sys.exit(app.exec())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
start_client()
|
|
run_gui()
|