Compare commits

...

3 Commits

Author SHA1 Message Date
Vxrtrauter d82008c9fe fix no item in downloads text 2026-01-20 11:26:49 +01:00
Vxrtrauter 83ff2720c8 add error handling for magnet uri being none 2026-01-20 10:43:02 +01:00
Vxrtrauter 83adbb027f fix aria2 connection refused errors caused by autoresume 2026-01-19 13:49:20 +01:00
4 changed files with 38 additions and 5 deletions
+17 -2
View File
@@ -147,6 +147,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
self.downloadList = QTableView()
self.emptyLibrary = QLabel("No items in library.")
self.emptyDownload = QLabel("No items in downloads.")
self.emptyDownload.setAlignment(Qt.AlignCenter)
self.consoleLog = QTextEdit()
self.progressbar = QProgressBar()
@@ -183,7 +184,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
def rowCount(self, parent=QModelIndex()):
return len(state.downloads)
def columnCount(self, parent=QModelIndex()):
return len(self.headers)
@@ -345,6 +346,10 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
self.download_timer.timeout.connect(lambda: run_thread(threading.Thread(target=self.download_list_update)))
self.download_timer.start(500)
self.active_timer = QTimer()
self.active_timer.timeout.connect(self.show_empty_downloads)
self.active_timer.start(500)
@staticmethod
def add_log(text):
if MainWindow._instance:
@@ -367,6 +372,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
if self.download_model:
self.download_model.layoutAboutToBeChanged.emit()
self.download_model.layoutChanged.emit()
def closeEvent(self, event: QCloseEvent):
closehelper()
@@ -384,8 +390,17 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
self.qtablewidget.hide()
self.emptyResults.show()
else:
self.emptyResults.hide()
self.qtablewidget.show()
self.emptyResults.hide()
def show_empty_downloads(self):
if len(state.downloads) > 0:
self.emptyDownload.hide()
self.downloadList.show()
else:
self.emptyDownload.show()
self.downloadList.hide()
# thank you claude
+16
View File
@@ -4,6 +4,7 @@ from core.utils.data.state import state
from core.utils.general.logs import update_download_completed_by_hash
from core.utils.general.logs import consoleLog
from plyer import notification
import socket
import time
import sys
@@ -42,6 +43,21 @@ def aria2server():
stderr=subprocess.DEVNULL,
creationflags=subprocess.CREATE_NO_WINDOW if sys.platform == 'win32' else 0
)
max_checks = 50
for check in range(max_checks):
try:
sock = socket.socket()
sock.settimeout(0.1)
sock.connect(("localhost", 6800))
sock.close()
break
except(ConnectionRefusedError, socket.timeout):
time.sleep(0.1)
else:
raise RuntimeError("Aria2 Server failed to start")
consoleLog("Aria2 Server started")
return aria2server
def dlprogress():
+5 -2
View File
@@ -8,8 +8,11 @@ def start_client():
consoleLog("Started Aria2p")
def add_magnet(uri):
aria2.add_magnet(uri)
consoleLog("Magnet URI added to Aria2")
if uri is not None and uri.startswith("magnet:?"):
aria2.add_magnet(uri)
consoleLog("Magnet URI added to Aria2")
else:
consoleLog(f"Invalid Magnet Link: {uri}")
-1
View File
@@ -1,4 +1,3 @@
from core.utils.data.state import state
from core.utils.general.logs import consoleLog
from core.utils.network.download import run_download_direct