diff --git a/src/server/api/auth.py b/src/server/api/auth.py index 7e3a135..7fa0df5 100644 --- a/src/server/api/auth.py +++ b/src/server/api/auth.py @@ -66,6 +66,29 @@ async def setup_auth(req: SetupRequest): # Save the config with the password hash and anime directory config_service.save_config(config, create_backup=False) + # Sync series from data files to database if anime directory is set + if anime_directory: + try: + from src.server.services.anime_service import ( + sync_series_from_data_files, + ) + import structlog + logger = structlog.get_logger(__name__) + sync_count = await sync_series_from_data_files( + anime_directory, logger + ) + logger.info( + "Setup complete: synced series from data files", + count=sync_count + ) + except Exception as e: + # Log but don't fail setup if sync fails + import structlog + structlog.get_logger(__name__).warning( + "Failed to sync series after setup", + error=str(e) + ) + return {"status": "ok"} except ValueError as e: diff --git a/src/server/api/config.py b/src/server/api/config.py index 740c193..214ce4e 100644 --- a/src/server/api/config.py +++ b/src/server/api/config.py @@ -239,8 +239,31 @@ async def update_directory( config_service.save_config(app_config) + # Sync series from data files to database + sync_count = 0 + try: + from src.server.services.anime_service import ( + sync_series_from_data_files, + ) + import structlog + logger = structlog.get_logger(__name__) + sync_count = await sync_series_from_data_files(directory, logger) + logger.info( + "Directory updated: synced series from data files", + directory=directory, + count=sync_count + ) + except Exception as e: + # Log but don't fail the directory update if sync fails + import structlog + structlog.get_logger(__name__).warning( + "Failed to sync series after directory update", + error=str(e) + ) + response: Dict[str, Any] = { - "message": "Anime directory updated successfully" + "message": "Anime directory updated successfully", + "synced_series": sync_count } return response