ソースを参照

[videos] At least stop IMDB from breaking

Colin Powell 2 ヶ月 前
コミット
53a04d064d
2 ファイル変更15 行追加13 行削除
  1. 1 3
      vrobbler/apps/videos/models.py
  2. 14 10
      vrobbler/apps/videos/sources/imdb.py

+ 1 - 3
vrobbler/apps/videos/models.py

@@ -2,7 +2,6 @@ import logging
 from typing import Optional
 from uuid import uuid4
 
-import pendulum
 import requests
 from django.conf import settings
 from django.core.files.base import ContentFile
@@ -21,8 +20,7 @@ from scrobbles.mixins import (
 from taggit.managers import TaggableManager
 from videos.metadata import VideoMetadata
 from videos.sources.imdb import lookup_video_from_imdb
-
-from vrobbler.apps.videos.sources.youtube import lookup_video_from_youtube
+from videos.sources.youtube import lookup_video_from_youtube
 
 YOUTUBE_VIDEO_URL = "https://www.youtube.com/watch?v="
 YOUTUBE_CHANNEL_URL = "https://www.youtube.com/channel/"

+ 14 - 10
vrobbler/apps/videos/sources/imdb.py

@@ -72,26 +72,30 @@ def lookup_video_from_imdb(
     video_metadata.video_type = VideoType.MOVIE.value
     series_name = None
     if imdb_result.get("kind") == "episode":
-        series_name = imdb_result.get("episode of", None).data.get(
-            "title", None
-        )
-        series, _ = Series.objects.get_or_create(name=series_name)
-        video_metadata.video_type = VideoType.TV_EPISODE.value
-        video_metadata.tv_series_id = series.id
+        try:
+            series_name = imdb_result.get("episode of", None).data.get(
+                "title", None
+            )
+        except IndexError:
+            series_name = None
+        if series_name:
+            series, _ = Series.objects.get_or_create(name=series_name)
+            video_metadata.video_type = VideoType.TV_EPISODE.value
+            video_metadata.tv_series_id = series.id
 
     if imdb_result.get("runtimes"):
         video_metadata.run_time_seconds = (
             int(imdb_result.get("runtimes")[0]) * 60
         )
 
+    video_metadata.imdb_id = name_or_id
     video_metadata.title = imdb_result.get("title", "")
-    video_metadata.imdb_id = imdb_result.get("imdbID")
     video_metadata.episode_number = imdb_result.get("episode", None)
     video_metadata.season_number = imdb_result.get("season", None)
     video_metadata.next_imdb_id = imdb_result.get("next episode", None)
     video_metadata.year = imdb_result.get("year", None)
-    video_metadata.plot = imdb_result.get("plot outline")
-    video_metadata.imdb_rating = imdb_result.get("rating")
-    video_metadata.genres = imdb_result.get("genres")
+    video_metadata.plot = imdb_result.get("plot outline", "")
+    video_metadata.imdb_rating = imdb_result.get("rating", None)
+    video_metadata.genres = imdb_result.get("genres", [])
 
     return video_metadata