WIP (not working) : désactivation async et passage à full qt

This commit is contained in:
2025-05-24 11:29:32 +02:00
parent be72749b53
commit f442e334d0
14 changed files with 269 additions and 949 deletions

View File

@@ -1,13 +1,14 @@
import asyncio
import sys
from pathlib import Path
import logging
import base64
import threading
from PySide6.QtCore import QTimer
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QMainWindow
import sys
from pathlib import Path
import logging
import base64
from src.conf import ConfManager
from src.download import DownloadManager
from src.handler import WebHandler
@@ -42,19 +43,20 @@ class MainWindow(QMainWindow):
self.setCentralWidget(self.site_window)
# connection des signaux
self.site_window.on_cookie_added.connect(lambda cookie: asyncio.ensure_future(self.download_manager.add_cookie(cookie)))
self.site_window.on_cookie_added.connect(self.download_manager.add_cookie)
self.logger.debug("Signaux connectés")
# initialisation du gestionnaire de téléchargement
self.dm_loop = None
QTimer.singleShot(0, self.setup_async_tasks)
QTimer.singleShot(0, self.setup_tasks)
self.logger.info("Fenêtre principale initialisée avec succès")
def setup_async_tasks(self):
# Lancer les tâches asyncio une fois que l'application est prête
self.logger.debug("Configuration des tâches asynchrones")
self.dm_loop = asyncio.ensure_future(self.download_manager.loop_queue())
def setup_tasks(self):
# Lancer les tâches une fois que l'application est prête
self.logger.debug("Configuration des tâches")
self.dm_loop = threading.Thread(target=self.download_manager.loop_queue, daemon=True)
self.dm_loop.start()
self.logger.debug("File d'attente de téléchargement démarrée")
def handle_files(self, file_paths):
@@ -89,3 +91,14 @@ class MainWindow(QMainWindow):
self.logger.error(f"Erreur lors de la lecture ou de l'encodage du fichier {file_path}: {e}")
else:
self.logger.warning(f"Le fichier {file_path} n'existe pas")
def closeEvent(self, event, /):
self.download_manager.pause = True
self.download_manager.stop = True
self.download_manager.waiter.set()
self.download_manager.close_thread_workers()
self.dm_loop.join(timeout=1)
event.accept()