mirror of
https://github.com/darkzoul5/YoutubePlaylistSync.git
synced 2026-11-08 08:15:12 +02:00
refactor: split DownloadJob into JobConfig and JobStatus
This commit is contained in:
1 parent
2e2c21fc10
commit
de39cca57d
1 file changed
+5
-5
@@ -21,19 +21,19 @@ class JobState(str, Enum):
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class DownloadJob:
|
class DownloadJob:
|
||||||
|
"""Configuration and status for a single download job."""
|
||||||
item: PlaylistItem
|
item: PlaylistItem
|
||||||
output_path: Optional[Path] = None
|
output_path: Optional[Path] = None
|
||||||
url: Optional[str] = None
|
url: Optional[str] = None
|
||||||
mode: str = "audio" # audio|video
|
mode: str = "audio" # audio|video
|
||||||
state: JobState = JobState.QUEUED
|
|
||||||
error: Optional[str] = None
|
|
||||||
ffmpeg_path: Optional[str] = None
|
ffmpeg_path: Optional[str] = None
|
||||||
max_download_quality: Optional[str] = None
|
max_download_quality: Optional[str] = None
|
||||||
playlist_id: Optional[str] = None
|
|
||||||
progress_callback: Optional[Callable[[dict[str, Any]], None]] = None
|
|
||||||
cancel_check: Optional[Callable[[], bool]] = None
|
|
||||||
audio_output_path: Optional[Path] = None # when mode=video and we also want mp3
|
audio_output_path: Optional[Path] = None # when mode=video and we also want mp3
|
||||||
keep_video: bool = True
|
keep_video: bool = True
|
||||||
|
|
||||||
|
# Status fields (mutable during execution)
|
||||||
|
state: JobState = JobState.QUEUED
|
||||||
|
error: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
class QueueManager:
|
class QueueManager:
|
||||||
|
|||||||
Reference in new issue
Block a user