diff --git a/vrobbler/apps/videos/sources/tmdb.py b/vrobbler/apps/videos/sources/tmdb.py index e1fb461..27fecb6 100644 --- a/vrobbler/apps/videos/sources/tmdb.py +++ b/vrobbler/apps/videos/sources/tmdb.py @@ -1,8 +1,9 @@ import logging +import pendulum from django.conf import settings from themoviedb import TMDb -from tmdbv3api import TV, TMDb as TMDb_direct +from tmdbv3api import TV, Movie, TMDb as TMDb_direct from videos.metadata import VideoMetadata, VideoType TMDB_KEY = getattr(settings, "TMDB_API_KEY", "") @@ -42,21 +43,29 @@ def lookup_video_from_tmdb( media = None show = None if len(tmdb_result.movie_results) > 0: - media = tmdb_result.movie_results[0] + media = Movie().details(tmdb_result.movie_results[0].id) video_metadata.video_type = VideoType.MOVIE.value + video_metadata.title = media.title video_metadata.cover_url = TMDB_IMAGE_URL + media.poster_path # TODO: enrich this with TMDB url + video_metadata.year = pendulum.parse(media.release_date).year + video_metadata.genres = [g.get("name", "") for g in media.genres] + if len(tmdb_result.tv_episode_results) > 0: video_metadata.video_type = VideoType.TV_EPISODE.value media = tmdb_result.tv_episode_results[0] - series_imdb_id = TV().external_ids(media.show_id).imdb_id[2:] + video_metadata.title = media.name + video_metadata.cover_url = TMDB_IMAGE_URL + media.still_path # TODO: enrich this with TMDB url + video_metadata.episode_number = media.episode_number + video_metadata.season_number = media.season_number + video_metadata.year = media.air_date.year + series_imdb_id = TV().external_ids(media.show_id).imdb_id[2:] series, created = Series.objects.get_or_create(imdb_id=series_imdb_id) if created: show_data = TV().details(tv_id=media.show_id) series.name = show_data.name series.save() video_metadata.tv_series_id = series.id - video_metadata.cover_url = TMDB_IMAGE_URL + media.still_path # TODO: enrich this with TMDB url if not media: logger.warning("Video not found on TMDB", extra={"imdb_id":imdb_id}) @@ -64,13 +73,9 @@ def lookup_video_from_tmdb( video_metadata.tmdb_id = media.id video_metadata.run_time_seconds = media.runtime * 60 - video_metadata.title = media.name - video_metadata.episode_number = media.episode_number - video_metadata.season_number = media.season_number - #video_metadata.next_imdb_id = imdb_result.get("next episode", None) - video_metadata.year = media.air_date.year video_metadata.plot = media.overview - video_metadata.imdb_rating = media.vote_average - #video_metadata.genres = imdb_result.get("genres", []) + video_metadata.overview = media.overview + video_metadata.tmdb_rating = media.vote_average + #video_metadata.next_imdb_id = imdb_result.get("next episode", None) return video_metadata