From cee644ffd3f17880ca02938c644f46fd2d508028 Mon Sep 17 00:00:00 2001 From: Nell Date: Mon, 14 Apr 2025 02:33:15 +0200 Subject: [PATCH] Init --- src/datatypes.py | 6 +++--- src/download.py | 4 +++- src/handler.py | 4 ++-- windows/main_window.py | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/datatypes.py b/src/datatypes.py index 0aa582d..c7d87ec 100644 --- a/src/datatypes.py +++ b/src/datatypes.py @@ -112,13 +112,13 @@ class FileStatsType(DataclassWithProperties): speed: int = 0 @property - def percent(self): + def percent(self) -> float: if self.total_size == 0: return 0 return self.downloaded_size / self.total_size * 100 @property - def eta(self): + def eta(self) -> int: if self.speed == 0: return 0 - return self.total_size / self.speed + return int(self.total_size / self.speed) diff --git a/src/download.py b/src/download.py index 8036942..d34e1e8 100644 --- a/src/download.py +++ b/src/download.py @@ -29,7 +29,7 @@ class DownloadManager(QObject): self.base_url = parent.url self.max_worker = 3 - self.chunk_size = 2 * 1024 * 1024 + self.chunk_size = 512 * 1024 self.pause = True self.files: dict[str, FileType] = self.conf.get_value("files", {}) self.tasks: dict[FileType, asyncio.Task] = {} @@ -167,6 +167,8 @@ class DownloadManager(QObject): last_update_time = current_time last_downloaded_size = stats.downloaded_size + else: + await asyncio.sleep(0.005) except httpx.HTTPStatusError as e: self.logger.error(f"Erreur HTTP lors du téléchargement de {file.target}: {e.response.status_code} - {e}") file.error = f"Erreur HTTP {e.response.status_code}: {str(e)}" diff --git a/src/handler.py b/src/handler.py index 1b7f3da..1e9e9e0 100644 --- a/src/handler.py +++ b/src/handler.py @@ -10,13 +10,13 @@ from src.download import DownloadManager class WebHandler(QObject): on_message = Signal(dict) - on_site_ready = Signal() + site_ready = Signal() def __init__(self, download_manager, parent=None): super().__init__(parent) self.download_manager: "DownloadManager" = download_manager self.conf = self.download_manager.conf - self.site_ready = False + self.site_loaded = False self.download_manager.status_updated.connect(lambda data: self.on_message.emit({ "context": "status_updated", diff --git a/windows/main_window.py b/windows/main_window.py index f239b3a..552e11f 100644 --- a/windows/main_window.py +++ b/windows/main_window.py @@ -64,7 +64,7 @@ class MainWindow(QMainWindow): Args: file_paths (list): Liste des chemins de fichiers à traiter """ - if not self.web_handler.site_ready: + if not self.web_handler.site_loaded: QTimer.singleShot(100, lambda: self.handle_files(file_paths)) self.logger.info("Site pas prêt, report de l'envoie des fichiers") return