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
@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)

View File

@@ -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)}"

View File

@@ -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",

View File

@@ -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