chore: apply pending code updates

This commit is contained in:
2026-03-17 11:39:27 +01:00
parent e5fae0a0a2
commit 92bd55ada1
45 changed files with 2236 additions and 2130 deletions

View File

@@ -188,7 +188,7 @@ class BackgroundLoaderService:
"""
# Check if task already exists
if key in self.active_tasks:
logger.debug(f"Task for series {key} already exists, skipping")
logger.debug("Task for series %s already exists, skipping", key)
return
task = SeriesLoadingTask(
@@ -202,7 +202,7 @@ class BackgroundLoaderService:
self.active_tasks[key] = task
await self.task_queue.put(task)
logger.info(f"Added loading task for series: {key}")
logger.info("Added loading task for series: %s", key)
# Broadcast initial status
await self._broadcast_status(task)
@@ -277,7 +277,7 @@ class BackgroundLoaderService:
Args:
worker_id: Unique identifier for this worker instance
"""
logger.info(f"Background worker {worker_id} started processing tasks")
logger.info("Background worker %s started processing tasks", worker_id)
while not self._shutdown:
try:
@@ -301,14 +301,14 @@ class BackgroundLoaderService:
# No task available, continue loop
continue
except asyncio.CancelledError:
logger.info(f"Worker {worker_id} task cancelled")
logger.info("Worker %s task cancelled", worker_id)
break
except Exception as e:
logger.exception(f"Error in background worker {worker_id}: {e}")
logger.exception("Error in background worker %s: %s", worker_id, e)
# Continue processing other tasks
continue
logger.info(f"Background worker {worker_id} stopped")
logger.info("Background worker %s stopped", worker_id)
async def _load_series_data(self, task: SeriesLoadingTask) -> None:
"""Load all missing data for a series.
@@ -362,10 +362,10 @@ class BackgroundLoaderService:
# Broadcast completion
await self._broadcast_status(task)
logger.info(f"Successfully loaded all data for series: {task.key}")
logger.info("Successfully loaded all data for series: %s", task.key)
except Exception as e:
logger.exception(f"Error loading series data: {e}")
logger.exception("Error loading series data: %s", e)
task.status = LoadingStatus.FAILED
task.error = str(e)
task.completed_at = datetime.now(timezone.utc)
@@ -400,14 +400,14 @@ class BackgroundLoaderService:
# Check if directory exists
if series_dir.exists() and series_dir.is_dir():
logger.debug(f"Found series directory: {series_dir}")
logger.debug("Found series directory: %s", series_dir)
return series_dir
else:
logger.warning(f"Series directory not found: {series_dir}")
logger.warning("Series directory not found: %s", series_dir)
return None
except Exception as e:
logger.error(f"Error finding series directory for {task.key}: {e}")
logger.error("Error finding series directory for %s: %s", task.key, e)
return None
async def _scan_series_episodes(self, series_dir: Path, task: SeriesLoadingTask) -> Dict[str, List[str]]:
@@ -440,13 +440,13 @@ class BackgroundLoaderService:
if episodes:
episodes_by_season[season_name] = episodes
logger.debug(f"Found {len(episodes)} episodes in {season_name}")
logger.debug("Found %s episodes in %s", len(episodes), season_name)
logger.info(f"Scanned {len(episodes_by_season)} seasons for {task.key}")
logger.info("Scanned %s seasons for %s", len(episodes_by_season), task.key)
return episodes_by_season
except Exception as e:
logger.error(f"Error scanning episodes for {task.key}: {e}")
logger.error("Error scanning episodes for %s: %s", task.key, e)
return {}
async def _load_episodes(self, task: SeriesLoadingTask, db: Any) -> None:
@@ -466,7 +466,7 @@ class BackgroundLoaderService:
# Find series directory without full rescan
series_dir = await self._find_series_directory(task)
if not series_dir:
logger.error(f"Cannot load episodes - directory not found for {task.key}")
logger.error("Cannot load episodes - directory not found for %s", task.key)
task.progress["episodes"] = False
return
@@ -474,7 +474,7 @@ class BackgroundLoaderService:
episodes_by_season = await self._scan_series_episodes(series_dir, task)
if not episodes_by_season:
logger.warning(f"No episodes found for {task.key}")
logger.warning("No episodes found for %s", task.key)
task.progress["episodes"] = False
return
@@ -489,10 +489,10 @@ class BackgroundLoaderService:
series_db.loading_status = "loading_episodes"
await db.commit()
logger.info(f"Episodes loaded for series: {task.key} ({len(episodes_by_season)} seasons)")
logger.info("Episodes loaded for series: %s (%s seasons)", task.key, len(episodes_by_season))
except Exception as e:
logger.exception(f"Failed to load episodes for {task.key}: {e}")
logger.exception("Failed to load episodes for %s: %s", task.key, e)
raise
async def _load_nfo_and_images(self, task: SeriesLoadingTask, db: Any) -> bool:
@@ -521,7 +521,7 @@ class BackgroundLoaderService:
# Check if NFO already exists
if self.series_app.nfo_service.has_nfo(task.folder):
logger.info(f"NFO already exists for {task.key}, skipping creation")
logger.info("NFO already exists for %s, skipping creation", task.key)
# Update task progress
task.progress["nfo"] = True
@@ -536,19 +536,19 @@ class BackgroundLoaderService:
if not series_db.has_nfo:
series_db.has_nfo = True
series_db.nfo_created_at = datetime.now(timezone.utc)
logger.info(f"Updated database with existing NFO for {task.key}")
logger.info("Updated database with existing NFO for %s", task.key)
if not series_db.logo_loaded:
series_db.logo_loaded = True
if not series_db.images_loaded:
series_db.images_loaded = True
await db.commit()
logger.info(f"Existing NFO found and database updated for series: {task.key}")
logger.info("Existing NFO found and database updated for series: %s", task.key)
return False
# NFO doesn't exist, create it
await self._broadcast_status(task, "Generating NFO file...")
logger.info(f"Creating new NFO for {task.key}")
logger.info("Creating new NFO for %s", task.key)
# Use existing NFOService to create NFO with all images
# This reuses all existing TMDB API logic and image downloading
@@ -577,11 +577,11 @@ class BackgroundLoaderService:
series_db.loading_status = "loading_nfo"
await db.commit()
logger.info(f"NFO and images created and loaded for series: {task.key}")
logger.info("NFO and images created and loaded for series: %s", task.key)
return True
except Exception as e:
logger.exception(f"Failed to load NFO/images for {task.key}: {e}")
logger.exception("Failed to load NFO/images for %s: %s", task.key, e)
# Don't fail the entire task if NFO fails
task.progress["nfo"] = False
task.progress["logo"] = False
@@ -611,7 +611,7 @@ class BackgroundLoaderService:
# Scan for missing episodes using the targeted scan method
# This populates the episodeDict without triggering a full rescan
logger.info(f"Scanning missing episodes for {task.key}")
logger.info("Scanning missing episodes for %s", task.key)
missing_episodes = self.series_app.serie_scanner.scan_single_series(
key=task.key,
folder=task.folder
@@ -628,12 +628,12 @@ class BackgroundLoaderService:
# Notify anime_service to sync episodes to database
# Use sync_single_series_after_scan which gets data from serie_scanner.keyDict
if self.anime_service:
logger.debug(f"Calling anime_service.sync_single_series_after_scan for {task.key}")
logger.debug("Calling anime_service.sync_single_series_after_scan for %s", task.key)
await self.anime_service.sync_single_series_after_scan(task.key)
else:
logger.warning(f"anime_service not available, episodes will not be synced to DB for {task.key}")
logger.warning("anime_service not available, episodes will not be synced to DB for %s", task.key)
else:
logger.info(f"No missing episodes found for {task.key}")
logger.info("No missing episodes found for %s", task.key)
# Update series status in database
from src.server.database.service import AnimeSeriesService
@@ -648,7 +648,7 @@ class BackgroundLoaderService:
task.progress["episodes"] = True
except Exception as e:
logger.exception(f"Failed to scan missing episodes for {task.key}: {e}")
logger.exception("Failed to scan missing episodes for %s: %s", task.key, e)
task.progress["episodes"] = False
async def _broadcast_status(