Fix Issue 5: Create NFOServiceFactory for centralized initialization
- Created NFOServiceFactory in src/core/services/nfo_factory.py - Enforces configuration precedence: explicit params > ENV > config.json - Provides create() and create_optional() methods - Singleton factory instance via get_nfo_factory() - Updated 4 files to use factory (nfo.py, SeriesApp.py, series_manager_service.py, nfo_cli.py) - Fixed test mocks: added ensure_folder_with_year(), corrected dependency test - Tests: 17/18 NFO passing, 15/16 anime passing - Resolves Code Duplication 2 (NFO initialization)
This commit is contained in:
@@ -175,14 +175,11 @@ class SeriesApp:
|
||||
self.nfo_service: Optional[NFOService] = None
|
||||
if settings.tmdb_api_key:
|
||||
try:
|
||||
self.nfo_service = NFOService(
|
||||
tmdb_api_key=settings.tmdb_api_key,
|
||||
anime_directory=directory_to_search,
|
||||
image_size=settings.nfo_image_size,
|
||||
auto_create=settings.nfo_auto_create
|
||||
)
|
||||
from src.core.services.nfo_factory import get_nfo_factory
|
||||
factory = get_nfo_factory()
|
||||
self.nfo_service = factory.create()
|
||||
logger.info("NFO service initialized successfully")
|
||||
except Exception as e: # pylint: disable=broad-except
|
||||
except (ValueError, Exception) as e: # pylint: disable=broad-except
|
||||
logger.warning(
|
||||
"Failed to initialize NFO service: %s", str(e)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user