Files
MediaManager/media_manager/metadataProvider/dependencies.py
2025-06-22 17:41:50 +02:00

37 lines
1.2 KiB
Python

from typing import Annotated, Literal
from fastapi import Depends
from media_manager.exceptions import InvalidConfigError
from fastapi.exceptions import HTTPException
from media_manager.metadataProvider.tmdb import TmdbMetadataProvider
from media_manager.metadataProvider.abstractMetaDataProvider import (
AbstractMetadataProvider,
)
from media_manager.metadataProvider.tvdb import TvdbMetadataProvider
def get_metadata_provider(
metadata_provider: Literal["tmdb", "tvdb"] = "tmdb",
) -> AbstractMetadataProvider:
try:
if metadata_provider == "tmdb":
return TmdbMetadataProvider()
elif metadata_provider == "tvdb":
return TvdbMetadataProvider()
else:
raise HTTPException(
status_code=400,
detail=f"Invalid metadata provider: {metadata_provider}. Supported providers are 'tmdb' and/or 'tvdb'.",
)
except InvalidConfigError as e:
raise HTTPException(
status_code=500,
detail=f"Metadata provider '{metadata_provider}' not configured: {str(e)}",
)
metadata_provider_dep = Annotated[
AbstractMetadataProvider, Depends(get_metadata_provider)
]