This commit is contained in:
2025-04-14 02:33:15 +02:00
parent cc91de9d52
commit cee644ffd3
4 changed files with 9 additions and 7 deletions

View File

@@ -112,13 +112,13 @@ class FileStatsType(DataclassWithProperties):
speed: int = 0 speed: int = 0
@property @property
def percent(self): def percent(self) -> float:
if self.total_size == 0: if self.total_size == 0:
return 0 return 0
return self.downloaded_size / self.total_size * 100 return self.downloaded_size / self.total_size * 100
@property @property
def eta(self): def eta(self) -> int:
if self.speed == 0: if self.speed == 0:
return 0 return 0
return self.total_size / self.speed return int(self.total_size / self.speed)

View File

@@ -29,7 +29,7 @@ class DownloadManager(QObject):
self.base_url = parent.url self.base_url = parent.url
self.max_worker = 3 self.max_worker = 3
self.chunk_size = 2 * 1024 * 1024 self.chunk_size = 512 * 1024
self.pause = True self.pause = True
self.files: dict[str, FileType] = self.conf.get_value("files", {}) self.files: dict[str, FileType] = self.conf.get_value("files", {})
self.tasks: dict[FileType, asyncio.Task] = {} self.tasks: dict[FileType, asyncio.Task] = {}
@@ -167,6 +167,8 @@ class DownloadManager(QObject):
last_update_time = current_time last_update_time = current_time
last_downloaded_size = stats.downloaded_size last_downloaded_size = stats.downloaded_size
else:
await asyncio.sleep(0.005)
except httpx.HTTPStatusError as e: except httpx.HTTPStatusError as e:
self.logger.error(f"Erreur HTTP lors du téléchargement de {file.target}: {e.response.status_code} - {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)}" file.error = f"Erreur HTTP {e.response.status_code}: {str(e)}"

View File

@@ -10,13 +10,13 @@ from src.download import DownloadManager
class WebHandler(QObject): class WebHandler(QObject):
on_message = Signal(dict) on_message = Signal(dict)
on_site_ready = Signal() site_ready = Signal()
def __init__(self, download_manager, parent=None): def __init__(self, download_manager, parent=None):
super().__init__(parent) super().__init__(parent)
self.download_manager: "DownloadManager" = download_manager self.download_manager: "DownloadManager" = download_manager
self.conf = self.download_manager.conf 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({ self.download_manager.status_updated.connect(lambda data: self.on_message.emit({
"context": "status_updated", "context": "status_updated",

View File

@@ -64,7 +64,7 @@ class MainWindow(QMainWindow):
Args: Args:
file_paths (list): Liste des chemins de fichiers à traiter 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)) QTimer.singleShot(100, lambda: self.handle_files(file_paths))
self.logger.info("Site pas prêt, report de l'envoie des fichiers") self.logger.info("Site pas prêt, report de l'envoie des fichiers")
return return