diff --git a/media_manager/metadataProvider/tvdb.py b/media_manager/metadataProvider/tvdb.py index 7a70e5f..5198121 100644 --- a/media_manager/metadataProvider/tvdb.py +++ b/media_manager/metadataProvider/tvdb.py @@ -1,7 +1,6 @@ import requests import logging - import media_manager.metadataProvider.utils from media_manager.config import MediaManagerConfig from media_manager.metadataProvider.abstractMetaDataProvider import ( @@ -11,7 +10,6 @@ from media_manager.metadataProvider.schemas import MetaDataProviderSearchResult from media_manager.tv.schemas import Episode, Season, Show, SeasonNumber from media_manager.movies.schemas import Movie - log = logging.getLogger(__name__) @@ -174,8 +172,11 @@ class TvdbMetadataProvider(AbstractMetadataProvider): formatted_results.append( MetaDataProviderSearchResult( - poster_path=result["image"], - overview=result["overview"], + poster_path="https://artworks.thetvdb.com" + + result.get("image") + if result.get("image") + else None, + overview=result.get("overview"), name=result["name"], external_id=result["id"], year=year, @@ -191,35 +192,7 @@ class TvdbMetadataProvider(AbstractMetadataProvider): def search_movie( self, query: str | None = None ) -> list[MetaDataProviderSearchResult]: - if query is None: - results = self.__get_trending_movies() - results = results[0:20] - log.debug(f"got {len(results)} results from TVDB search") - formatted_results = [] - for result in results: - result = self.__get_movie(result["id"]) - try: - try: - year = result["year"] - except KeyError: - year = None - - formatted_results.append( - MetaDataProviderSearchResult( - poster_path=result["image"], - overview="TVDB does not provide overviews", - name=result["name"], - external_id=result["id"], - year=year, - metadata_provider=self.name, - added=False, - vote_average=None, - ) - ) - except Exception as e: - log.warning(f"Error processing search result: {e}") - return formatted_results - else: + if query: results = self.__search_movie(query=query) results = results[0:20] log.debug(f"got {len(results)} results from TVDB search") @@ -238,8 +211,8 @@ class TvdbMetadataProvider(AbstractMetadataProvider): formatted_results.append( MetaDataProviderSearchResult( - poster_path=result["image_url"], - overview="TVDB does not provide overviews", + poster_path=result.get("image_url"), + overview=result.get("overview"), name=result["name"], external_id=result["tvdb_id"], year=year, @@ -251,6 +224,37 @@ class TvdbMetadataProvider(AbstractMetadataProvider): except Exception as e: log.warning(f"Error processing search result: {e}") return formatted_results + else: + results = self.__get_trending_movies() + results = results[0:20] + log.debug(f"got {len(results)} results from TVDB search") + formatted_results = [] + for result in results: + result = self.__get_movie(result["id"]) + try: + try: + year = result["year"] + except KeyError: + year = None + + formatted_results.append( + MetaDataProviderSearchResult( + poster_path="https://artworks.thetvdb.com" + + result.get("image") + if result.get("image") + else None, + overview=result.get("overview"), + name=result["name"], + external_id=result["id"], + year=year, + metadata_provider=self.name, + added=False, + vote_average=None, + ) + ) + except Exception as e: + log.warning(f"Error processing search result: {e}") + return formatted_results def download_movie_poster_image(self, movie: Movie) -> bool: movie_metadata = self.__get_movie(movie.external_id)