From 4dba4db344d16f4e1e32924b5c4f7a68527708ec Mon Sep 17 00:00:00 2001 From: Lukas Date: Sat, 1 Nov 2025 17:51:30 +0100 Subject: [PATCH] fix: wrong folder was created --- src/server/api/download.py | 1 + src/server/models/download.py | 8 ++++++-- src/server/services/download_service.py | 12 +++++++++--- src/server/web/static/js/app.js | 1 + 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/server/api/download.py b/src/server/api/download.py index efd16e3..5198eb6 100644 --- a/src/server/api/download.py +++ b/src/server/api/download.py @@ -128,6 +128,7 @@ async def add_to_queue( # Add to queue added_ids = await download_service.add_to_queue( serie_id=request.serie_id, + serie_folder=request.serie_folder, serie_name=request.serie_name, episodes=request.episodes, priority=request.priority, diff --git a/src/server/models/download.py b/src/server/models/download.py index 8e8ee2d..b330e78 100644 --- a/src/server/models/download.py +++ b/src/server/models/download.py @@ -66,7 +66,10 @@ class DownloadItem(BaseModel): """Represents a single download item in the queue.""" id: str = Field(..., description="Unique download item identifier") - serie_id: str = Field(..., description="Series identifier") + serie_id: str = Field(..., description="Series identifier (provider key)") + serie_folder: Optional[str] = Field( + None, description="Series folder name on disk" + ) serie_name: str = Field(..., min_length=1, description="Series name") episode: EpisodeIdentifier = Field( ..., description="Episode identification" @@ -157,7 +160,8 @@ class QueueStats(BaseModel): class DownloadRequest(BaseModel): """Request to add episode(s) to the download queue.""" - serie_id: str = Field(..., description="Series identifier") + serie_id: str = Field(..., description="Series identifier (provider key)") + serie_folder: str = Field(..., description="Series folder name on disk") serie_name: str = Field( ..., min_length=1, description="Series name for display" ) diff --git a/src/server/services/download_service.py b/src/server/services/download_service.py index 9df7763..bc9ff44 100644 --- a/src/server/services/download_service.py +++ b/src/server/services/download_service.py @@ -233,6 +233,7 @@ class DownloadService: async def add_to_queue( self, serie_id: str, + serie_folder: str, serie_name: str, episodes: List[EpisodeIdentifier], priority: DownloadPriority = DownloadPriority.NORMAL, @@ -240,7 +241,8 @@ class DownloadService: """Add episodes to the download queue (FIFO order). Args: - serie_id: Series identifier + serie_id: Series identifier (provider key) + serie_folder: Series folder name on disk serie_name: Series display name episodes: List of episodes to download priority: Queue priority level (ignored, kept for compatibility) @@ -258,6 +260,7 @@ class DownloadService: item = DownloadItem( id=self._generate_item_id(), serie_id=serie_id, + serie_folder=serie_folder, serie_name=serie_name, episode=episode, status=DownloadStatus.PENDING, @@ -759,11 +762,14 @@ class DownloadService: progress_callback = self._create_progress_callback(item) # Execute download via anime service + # Use serie_folder if available, otherwise fall back to serie_id + # for backwards compatibility with old queue items + folder = item.serie_folder if item.serie_folder else item.serie_id success = await self._anime_service.download( - serie_folder=item.serie_id, + serie_folder=folder, season=item.episode.season, episode=item.episode.episode, - key=item.serie_id, # Assuming serie_id is the provider key + key=item.serie_id, callback=progress_callback, ) diff --git a/src/server/web/static/js/app.js b/src/server/web/static/js/app.js index abefbed..d335121 100644 --- a/src/server/web/static/js/app.js +++ b/src/server/web/static/js/app.js @@ -935,6 +935,7 @@ class AniWorldApp { }, body: JSON.stringify({ serie_id: serie.key, + serie_folder: serie.folder, serie_name: serie.name, episodes: episodes, priority: 'NORMAL'