mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-04-17 23:53:58 +02:00
change metadata provider functions
This commit is contained in:
@@ -17,6 +17,8 @@ class TmdbConfig(BaseSettings):
|
||||
TMDB_API_KEY: str | None = None
|
||||
|
||||
|
||||
ENDED_STATUS = {"Ended", "Canceled"}
|
||||
|
||||
config = TmdbConfig()
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -24,6 +26,9 @@ log = logging.getLogger(__name__)
|
||||
class TmdbMetadataProvider(AbstractMetadataProvider):
|
||||
name = "tmdb"
|
||||
|
||||
def __init__(self, api_key: str = None):
|
||||
tmdbsimple.API_KEY = api_key
|
||||
|
||||
def download_show_poster_image(self, show: Show) -> bool:
|
||||
show_metadata = TV(show.external_id).info()
|
||||
# downloading the poster
|
||||
@@ -92,6 +97,7 @@ class TmdbMetadataProvider(AbstractMetadataProvider):
|
||||
year=year,
|
||||
seasons=season_list,
|
||||
metadata_provider=self.name,
|
||||
ended=show_metadata["status"] in ENDED_STATUS,
|
||||
)
|
||||
|
||||
return show
|
||||
@@ -146,8 +152,6 @@ class TmdbMetadataProvider(AbstractMetadataProvider):
|
||||
log.warning(f"Error processing search result {result}: {e}")
|
||||
return formatted_results
|
||||
|
||||
def __init__(self, api_key: str = None):
|
||||
tmdbsimple.API_KEY = api_key
|
||||
|
||||
|
||||
if config.TMDB_API_KEY is not None:
|
||||
|
||||
@@ -35,7 +35,9 @@ class TvdbMetadataProvider(AbstractMetadataProvider):
|
||||
|
||||
if show_metadata["image"] is not None:
|
||||
media_manager.metadataProvider.utils.download_poster_image(
|
||||
storage_path=self.storage_path, poster_url=show_metadata["image"], show=show
|
||||
storage_path=self.storage_path,
|
||||
poster_url=show_metadata["image"],
|
||||
show=show,
|
||||
)
|
||||
log.info("Successfully downloaded poster image for show " + show.name)
|
||||
return True
|
||||
@@ -76,6 +78,8 @@ class TvdbMetadataProvider(AbstractMetadataProvider):
|
||||
year = series["year"]
|
||||
except KeyError:
|
||||
year = None
|
||||
# NOTE: the TVDB API is fucking shit and seems to be very poorly documentated, I can't for the life of me
|
||||
# figure out which statuses this fucking api returns
|
||||
show = Show(
|
||||
name=series["name"],
|
||||
overview=series["overview"],
|
||||
@@ -83,12 +87,13 @@ class TvdbMetadataProvider(AbstractMetadataProvider):
|
||||
external_id=series["id"],
|
||||
metadata_provider=self.name,
|
||||
seasons=seasons,
|
||||
ended=False,
|
||||
)
|
||||
|
||||
return show
|
||||
|
||||
def search_show(
|
||||
self, query: str | None = None
|
||||
self, query: str | None = None
|
||||
) -> list[MetaDataProviderShowSearchResult]:
|
||||
if query is None:
|
||||
results = self.tvdb_client.get_all_series()
|
||||
|
||||
@@ -34,7 +34,7 @@ def tv_service(mock_tv_repository, mock_torrent_service, mock_indexer_service):
|
||||
)
|
||||
|
||||
|
||||
def test_add_show(tv_service, mock_tv_repository, mock_torrent_service):
|
||||
def test_add_show(tv_service, mock_tv_repository, mock_torrent_service, monkeypatch):
|
||||
external_id = 123
|
||||
metadata_provider = "tmdb"
|
||||
show_data = Show(
|
||||
@@ -46,7 +46,7 @@ def test_add_show(tv_service, mock_tv_repository, mock_torrent_service):
|
||||
metadata_provider=metadata_provider,
|
||||
seasons=[],
|
||||
)
|
||||
|
||||
monkeypatch.setattr("media_manager.metadataProvider.download_show_poster_image", lambda show:True)
|
||||
with patch(
|
||||
"media_manager.metadataProvider.get_show_metadata", return_value=show_data
|
||||
) as mock_get_metadata:
|
||||
@@ -71,6 +71,8 @@ def test_add_show_with_invalid_metadata(
|
||||
monkeypatch.setattr(
|
||||
"media_manager.metadataProvider.get_show_metadata", lambda id, provider: None
|
||||
)
|
||||
monkeypatch.setattr("media_manager.metadataProvider.download_show_poster_image", lambda show:False)
|
||||
|
||||
mock_tv_repository.save_show.return_value = None
|
||||
result = tv_service.add_show(
|
||||
external_id=external_id, metadata_provider=metadata_provider
|
||||
|
||||
Reference in New Issue
Block a user