Init
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)}"
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user