| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # -*- coding: utf-8 -*-
- """
- Event-Datenklassen fuer Downloads.
- Definiert typisierte Events fuer den Download-Lifecycle:
- - BeforeDownload: Vor dem Download (cancellable, URL/Pfad aenderbar)
- - DownloadProgress: Fortschritts-Update (informativ)
- - DownloadCompleted: Download erfolgreich
- - DownloadFailed: Download fehlgeschlagen
- - BeforeExtract: Vor dem Entpacken (cancellable, Ziel aenderbar)
- - ExtractCompleted: Entpacken abgeschlossen
- """
- from dataclasses import dataclass
- from trixy_core.events.event_data.base import EventData
- @dataclass
- class BeforeDownload(EventData):
- """Cancellable — vor dem Download. Plugins koennen URL/Pfad aendern oder cancel()."""
- download_id: str = ""
- url: str = ""
- filename: str = ""
- dest_path: str = ""
- total_size: int = 0
- @dataclass
- class DownloadProgress(EventData):
- """Fortschritts-Update waehrend des Downloads (informativ, alle 5%)."""
- download_id: str = ""
- filename: str = ""
- downloaded: int = 0
- total: int = 0
- percent: float = 0.0
- speed: int = 0
- eta_seconds: int = 0
- @dataclass
- class DownloadCompleted(EventData):
- """Download erfolgreich abgeschlossen."""
- download_id: str = ""
- url: str = ""
- filename: str = ""
- dest_path: str = ""
- size: int = 0
- duration_seconds: float = 0.0
- speed_avg: int = 0
- @dataclass
- class DownloadFailed(EventData):
- """Download fehlgeschlagen."""
- download_id: str = ""
- url: str = ""
- filename: str = ""
- error: str = ""
- @dataclass
- class BeforeExtract(EventData):
- """Cancellable — vor dem Entpacken. Plugins koennen cancel() oder dest_dir aendern."""
- download_id: str = ""
- filename: str = ""
- archive_path: str = ""
- dest_dir: str = ""
- @dataclass
- class ExtractCompleted(EventData):
- """Entpacken abgeschlossen."""
- download_id: str = ""
- filename: str = ""
- dest_dir: str = ""
- file_count: int = 0
|