From 335845b9dd6dc0427a737a85a03678fb26cc1303 Mon Sep 17 00:00:00 2001 From: KeksNino Date: Fri, 10 Oct 2025 21:48:09 +0200 Subject: [PATCH] add notification function (not working) --- core/interface/gui.py | 9 +++------ core/network/aria2_integration.py | 23 ++++++++++++++++++++--- main.py | 4 ++++ requirements.txt | 1 + 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/core/interface/gui.py b/core/interface/gui.py index 2916fc3..11c2270 100644 --- a/core/interface/gui.py +++ b/core/interface/gui.py @@ -14,7 +14,6 @@ from PySide6.QtWidgets import ( QSpinBox, QTabWidget, QProgressBar, - QTextEdit, ) from PySide6.QtGui import QIcon, QAction import darkdetect @@ -173,7 +172,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): api_url_container = QWidget() api_url_layout = QHBoxLayout() - api_url = QTextEdit() + api_url = QLineEdit() api_url_layout.addWidget(QLabel("API Server URL:")) api_url_layout.addWidget(api_url) api_url_container.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) @@ -188,7 +187,7 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): download_path_container = QWidget() download_path_layout = QHBoxLayout() - download_path = QTextEdit() + download_path = QLineEdit() download_path_layout.addWidget(QLabel("Download Path:")) download_path_layout.addWidget(download_path) download_path_container.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) @@ -222,9 +221,8 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): save_btn = QPushButton("Save") cancel_btn = QPushButton("Cancel") - save_btn.clicked.connect(lambda: save_settings(thread_box.value(), close_settings, api_url.toPlainText(), download_path.toPlainText(), speed_limit.value())) + save_btn.clicked.connect(lambda: save_settings(thread_box.value(), close_settings, api_url.text(), download_path.text(), speed_limit.value())) - cancel_btn.clicked.connect(dialog.reject) print(thread_box.value()) layout.addWidget(cancel_btn) @@ -234,7 +232,6 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): dialog.exec() - # this needs a cleanup def return_pressed(self): search_text = self.searchbar.text() diff --git a/core/network/aria2_integration.py b/core/network/aria2_integration.py index 81fe0c5..44b778a 100644 --- a/core/network/aria2_integration.py +++ b/core/network/aria2_integration.py @@ -1,6 +1,8 @@ import aria2p import subprocess from core.utils.data.state import state +from plyer import notification +import time def run_aria2p(): global aria2 @@ -37,12 +39,27 @@ def aria2server(): def dlprogress(): try: - download2 = aria2.get_downloads() - if download2: - for download in download2: + downloads = aria2.get_downloads() + if downloads: + for download in downloads: progress = download.progress_string(0) progress_int = int(progress.strip('%')) return progress_int return 0 except: return 0 + +def send_notification(): + while True: + try: + downloads = aria2.get_downloads() + if downloads: + for download in downloads: + if download.is_complete: + # notification.notify("Download Complete" + print("yet") + time.sleep(5) + except Exception as e: + if state.debug: + print(f"Notification Error: {e}") + break diff --git a/main.py b/main.py index 9cc7612..700aeef 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,9 @@ from core.interface.gui import MainWindow from core.utils.data.state import state from core.network.aria2_integration import aria2server +from core.network.aria2_integration import send_notification +from core.utils.wrappers import run_thread +import threading from core.utils.config.config import read_config from PySide6 import QtWidgets import qdarktheme @@ -23,6 +26,7 @@ def run_gui(): sys.exit(app.exec()) def run_aria2server(): + run_thread(threading.Thread(target=send_notification)) aria2process = aria2server() return aria2process diff --git a/requirements.txt b/requirements.txt index 01db689..97505f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ aria2p==0.12.1 pyinstaller==6.15.0 pyqtdarktheme==0.1.7 aiohttp==3.13.0 +plyer==2.1.0