Add sync_single_series_after_scan with NFO metadata and WebSocket updates

- Implement sync_single_series_after_scan to persist scanned series to database
- Enhanced _broadcast_series_updated to include full NFO metadata (nfo_created_at, nfo_updated_at, tmdb_id, tvdb_id)
- Add immediate episode scanning in add_series endpoint when background loader isn't running
- Implement updateSingleSeries in frontend to handle series_updated WebSocket events
- Add SERIES_UPDATED event constant to WebSocket event definitions
- Update background loader to use sync_single_series_after_scan method
- Simplified background loader initialization in FastAPI app
- Add comprehensive tests for series update WebSocket payload and episode counting logic
- Import reorganization: move get_background_loader_service to dependencies module
This commit is contained in:
2026-02-06 18:36:39 +01:00
parent d74c181556
commit d72b8cb1ab
9 changed files with 1078 additions and 21 deletions

View File

@@ -251,17 +251,9 @@ async def lifespan(_application: FastAPI):
logger.info("Download service initialized and queue restored")
# Initialize background loader service
from src.server.services.background_loader_service import (
init_background_loader_service,
)
from src.server.utils.dependencies import get_series_app
from src.server.utils.dependencies import get_background_loader_service
series_app_instance = get_series_app()
background_loader = init_background_loader_service(
websocket_service=ws_service,
anime_service=anime_service,
series_app=series_app_instance
)
background_loader = get_background_loader_service()
await background_loader.start()
initialized['background_loader'] = True
logger.info("Background loader service started")