mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-02-20 07:59:50 -05:00
29 lines
886 B
Python
29 lines
886 B
Python
from typing import Annotated, Literal
|
|
|
|
from fastapi import Depends
|
|
from fastapi.exceptions import HTTPException
|
|
|
|
from media_manager.metadataProvider.abstract_metadata_provider import (
|
|
AbstractMetadataProvider,
|
|
)
|
|
from media_manager.metadataProvider.tmdb import TmdbMetadataProvider
|
|
from media_manager.metadataProvider.tvdb import TvdbMetadataProvider
|
|
|
|
|
|
def get_metadata_provider(
|
|
metadata_provider: Literal["tmdb", "tvdb"] = "tmdb",
|
|
) -> AbstractMetadataProvider:
|
|
if metadata_provider == "tmdb":
|
|
return TmdbMetadataProvider()
|
|
if metadata_provider == "tvdb":
|
|
return TvdbMetadataProvider()
|
|
raise HTTPException(
|
|
status_code=400,
|
|
detail=f"Invalid metadata provider: {metadata_provider}. Supported providers are 'tmdb' and 'tvdb'.",
|
|
)
|
|
|
|
|
|
metadata_provider_dep = Annotated[
|
|
AbstractMetadataProvider, Depends(get_metadata_provider)
|
|
]
|