mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-03 17:39:42 +02:00
every menu works, now the downloads need fixing
This commit is contained in:
@@ -47,9 +47,9 @@ def _get_telegram_posts():
|
||||
if post_url not in added:
|
||||
added.add(post_url)
|
||||
posts.append(dict(
|
||||
title=title,
|
||||
author="m0nkrus",
|
||||
id=len(posts) + 1,
|
||||
title=title,
|
||||
url=post_url
|
||||
))
|
||||
|
||||
|
||||
@@ -9,8 +9,22 @@ def scrape_rutracker(query):
|
||||
consoleLog("[core.data.scrapers.rutracker] Sent request to server")
|
||||
if search:
|
||||
_, data, _, _, _ = split_data(search.text)
|
||||
|
||||
sorteddata = []
|
||||
|
||||
return data
|
||||
for entry in data:
|
||||
sorteddata.append(
|
||||
{
|
||||
"title" : entry["title"],
|
||||
"author" : entry["author"],
|
||||
"seeders" : entry["seeders"],
|
||||
"leechers" : entry["leechers"],
|
||||
"url" : entry["url"],
|
||||
"id" : entry["id"],
|
||||
}
|
||||
)
|
||||
|
||||
return sorteddata
|
||||
else:
|
||||
consoleLog("[core.data.scrapers.rutracker] No search Text, returning nothing")
|
||||
return []
|
||||
|
||||
@@ -98,7 +98,7 @@ def filter_steamrip(query: str):
|
||||
|
||||
Metadata = {
|
||||
"name" : "steamrip",
|
||||
"headers" : ["Game", "Available Downloads"],
|
||||
"headers" : ["Game"],
|
||||
"scrapeFunc" : filter_steamrip,
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ def scrape_uztracker(query):
|
||||
|
||||
posts.append(dict(
|
||||
title=title,
|
||||
author=author,
|
||||
url=url,
|
||||
author=author
|
||||
))
|
||||
|
||||
return posts
|
||||
|
||||
+49
-10
@@ -13,6 +13,7 @@ from PySide6.QtWidgets import (
|
||||
QHeaderView,
|
||||
QMessageBox,
|
||||
QTableWidget,
|
||||
QTableWidgetItem,
|
||||
QTextEdit,
|
||||
QStyledItemDelegate,
|
||||
QStatusBar
|
||||
@@ -162,11 +163,13 @@ def windowCloseHelper():
|
||||
|
||||
class MainWindow(QtWidgets.QMainWindow, QWidget):
|
||||
log_signal = Signal(str) # Thread-safe signal for logging
|
||||
search_results_signal = Signal(list) # and searching
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
MainWindow._instance = self
|
||||
self.log_signal.connect(self._on_log_signal)
|
||||
self.search_results_signal.connect(self._on_search_results)
|
||||
|
||||
pixmap = QPixmap()
|
||||
image_data = base64.b64decode(logo_base64)
|
||||
@@ -248,8 +251,10 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
||||
state.trackertable.verticalHeader().setVisible(False)
|
||||
state.trackertable.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
||||
state.trackertable.viewport().setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
||||
|
||||
|
||||
model = state.trackertable.model()
|
||||
model.dataChanged.disconnect()
|
||||
state.trackertable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
|
||||
|
||||
class TrackerHoverDelegate(QStyledItemDelegate):
|
||||
def paint(self, painter, option, index):
|
||||
if index.row() == MainWindow._instance._tracker_hovered_row:
|
||||
@@ -491,8 +496,9 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
||||
self.downloadList.setItemDelegateForColumn(0, delegate)
|
||||
delegate.clicked.connect(on_pause_resume_clicked)
|
||||
|
||||
# download button triggers
|
||||
#! THIS IS TEMPORARY self.dlbutton.clicked.connect(lambda: run_thread(threading.Thread(target=download_selected, args=(state.trackertable.currentItem(), state.posts, state.posts))))
|
||||
#! FIX THIS
|
||||
|
||||
self.dlbutton.clicked.connect(lambda: run_thread(threading.Thread(target=download_selected, args=(state.trackertable.currentItem(), state.posts, state.trackers[state.currenttracker]["headers"]))))
|
||||
|
||||
container.setLayout(containerLayout)
|
||||
self.setCentralWidget(container)
|
||||
@@ -636,6 +642,24 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
||||
self.consoleLog.verticalScrollBar().maximum()
|
||||
)
|
||||
|
||||
def _on_search_results(self, headers):
|
||||
|
||||
if state.posts is None or state.posts == []:
|
||||
self.show_empty_results(True)
|
||||
return
|
||||
else:
|
||||
self.show_empty_results(False)
|
||||
|
||||
state.trackertable.clearContents()
|
||||
state.trackertable.setColumnCount(len(headers))
|
||||
state.trackertable.setHorizontalHeaderLabels(headers)
|
||||
state.trackertable.setRowCount(len(state.posts))
|
||||
for x, rowdata in enumerate(state.posts):
|
||||
for y, data in enumerate(rowdata.values()):
|
||||
state.trackertable.setItem(x, y, QTableWidgetItem(str(data)))
|
||||
|
||||
self._resize_tracker_columns()
|
||||
|
||||
def update_image_overlay(self, new_image_path):
|
||||
self.image = QImage(new_image_path)
|
||||
self.pixmap = QPixmap.fromImage(self.image)
|
||||
@@ -693,9 +717,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
||||
|
||||
|
||||
def mousePressEvent(self, event):
|
||||
self.rutrackerlist.clearSelection()
|
||||
self.uztrackerlist.clearSelection()
|
||||
self.monkruslist.clearSelection()
|
||||
state.trackertable.clearSelection()
|
||||
self.downloadList.clearSelection()
|
||||
super().mousePressEvent(event)
|
||||
|
||||
@@ -764,11 +786,28 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
||||
self.emptyDownload.show()
|
||||
self.downloadList.hide()
|
||||
|
||||
# thank you claude
|
||||
# thanks claude
|
||||
def _resize_tracker_columns(self):
|
||||
header = state.trackertable.horizontalHeader()
|
||||
col_count = header.count()
|
||||
if col_count == 0:
|
||||
return
|
||||
|
||||
for i in range(col_count):
|
||||
state.trackertable.resizeColumnToContents(i)
|
||||
|
||||
content_widths = [header.sectionSize(i) for i in range(col_count)]
|
||||
total_content_width = sum(content_widths)
|
||||
remaining = state.trackertable.viewport().width() - total_content_width
|
||||
extra = max(0, remaining) // col_count
|
||||
|
||||
header.setSectionResizeMode(QHeaderView.ResizeMode.Fixed)
|
||||
for i in range(col_count):
|
||||
header.resizeSection(i, content_widths[i] + extra)
|
||||
|
||||
def resizeEvent(self, event):
|
||||
super().resizeEvent(event)
|
||||
table_width = state.trackertable.viewport().width()
|
||||
state.trackertable.setColumnWidth(1, int(table_width * 0.3))
|
||||
self._resize_tracker_columns()
|
||||
|
||||
def contextMenuEvent(self, event: QContextMenuEvent):
|
||||
if self.downloadList.underMouse():
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
from PySide6.QtWidgets import QTableWidgetItem, QHeaderView
|
||||
from core.utils.logging.logs import consoleLog
|
||||
from core.data.scrapers.uztracker import scrape_uztracker
|
||||
from core.data.scrapers.rutracker import scrape_rutracker
|
||||
from core.data.scrapers.uztracker import scrape_uztracker
|
||||
from core.data.scrapers.monkrus import scrape_m0nkrus
|
||||
from core.data.scrapers.steamrip import filter_steamrip
|
||||
from core.utils.data.state import state
|
||||
|
||||
def return_pressed(self):
|
||||
self.show_empty_results(False)
|
||||
search_text = self.searchbar.text()
|
||||
if search_text == "":
|
||||
consoleLog("Error: Can't search for nothing")
|
||||
@@ -18,18 +19,6 @@ def return_pressed(self):
|
||||
scrapefunc: function = tracker["scrapeFunc"]
|
||||
|
||||
state.posts = scrapefunc(search_text)
|
||||
|
||||
state.trackertable.clearContents()
|
||||
|
||||
if state.posts == []:
|
||||
self.show_empty_results(True)
|
||||
|
||||
state.trackertable.setColumnCount(len(tracker["headers"]))
|
||||
state.trackertable.setHorizontalHeaderLabels(tracker["headers"])
|
||||
state.trackertable.setRowCount(len(state.posts))
|
||||
|
||||
for x, rowdata in enumerate(state.posts):
|
||||
for y, data in enumerate(rowdata.values()):
|
||||
state.trackertable.setItem(x, y, QTableWidgetItem(data))
|
||||
|
||||
consoleLog("[searchhelper] updated table")
|
||||
from core.interface.gui import MainWindow
|
||||
MainWindow._instance.search_results_signal.emit(tracker["headers"])
|
||||
|
||||
@@ -37,4 +37,4 @@ def run_download_direct(magnet_uri):
|
||||
|
||||
def seed_magnet(magnet_uri, file_path):
|
||||
consoleLog(f"Seeding: {magnet_uri[:60]}")
|
||||
add_seed(magnet_uri, file_path)
|
||||
add_seed(magnet_uri, file_path)
|
||||
|
||||
Reference in New Issue
Block a user