Selaa lähdekoodia

[videos] Fix TMDB lookup for movies

Colin Powell 2 kuukautta sitten
vanhempi
commit
3f2cbbb34a
1 muutettua tiedostoa jossa 16 lisäystä ja 11 poistoa
  1. 16 11
      vrobbler/apps/videos/sources/tmdb.py

+ 16 - 11
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