diff --git a/src/core/SerieScanner.py b/src/core/SerieScanner.py index 2380cb8..f7f6625 100644 --- a/src/core/SerieScanner.py +++ b/src/core/SerieScanner.py @@ -24,7 +24,7 @@ from src.config.settings import settings from src.core.entities.series import Serie from src.core.exceptions.Exceptions import MatchNotFoundError, NoKeyFoundException from src.core.providers.base_provider import Loader -from src.core.utils.key_utils import generate_key_from_folder +from src.core.utils.key_utils import generate_key_from_folder, is_valid_key from src.server.database.connection import get_sync_session from src.server.database.service import AnimeSeriesService, EpisodeService @@ -726,6 +726,16 @@ class SerieScanner: try: generated_key = generate_key_from_folder(folder_name) year_from_folder = self._extract_year_from_folder_name(folder_name) + + # Validate that the generated key is usable + if not generated_key or not is_valid_key(generated_key): + logger.warning( + "Serie key is invalid for folder '%s' (key='%s') - skipping", + folder_name, + generated_key + ) + return None + logger.info( "Generated key for folder '%s' -> key='%s'", folder_name, @@ -741,7 +751,7 @@ class SerieScanner: ) except Exception as exc: logger.warning( - "Failed to generate key for folder '%s': %s", + "Unexpected error generating key for folder '%s': %s", folder_name, exc ) diff --git a/src/server/services/folder_rename_service.py b/src/server/services/folder_rename_service.py index c24901f..cb8c0e9 100644 --- a/src/server/services/folder_rename_service.py +++ b/src/server/services/folder_rename_service.py @@ -602,6 +602,11 @@ async def validate_and_rename_series_folders(dry_run: bool = False) -> Dict[str, try: import shutil + logger.warning( + "Removing source duplicate folder '%s' — target '%s' already exists", + current_name, + expected_name, + ) shutil.rmtree(series_dir) logger.info( "Removed source folder '%s' — series already exists at target",