Simplify NetflixSession.parse_genres_for_video(). master
authorTilman Sauerbeck <tilman@code-monkey.de>
Sat, 12 Aug 2017 10:58:15 +0000 (12:58 +0200)
committerTilman Sauerbeck <tilman@code-monkey.de>
Sat, 12 Aug 2017 11:01:06 +0000 (13:01 +0200)
This method resolves genre references (IDs) to genre names.
Before this change, we would iterate the list of genre (names)
and then iterate the list of genre IDs to look for matches.
The same result can be established more efficiently by iterating
the genre references followed by lookups for their associated names.

Error handling for lookup failures has been left intact from the
original implementation.

resources/lib/NetflixSession.py

index a4c48744ef7a933cd6e0cc18ef2dc8b9a0dc4929..62e58fd0d76fc05ba78667774a420e61b50b7f79 100644 (file)
@@ -895,12 +895,14 @@ class NetflixSession:
             List of genres
         """
         video_genres = []
-        for genre_key in dict(genres).keys():
-            if self._is_size_key(key=genre_key) == False and genre_key != 'summary':
-                for show_genre_key in dict(video['genres']).keys():
-                    if self._is_size_key(key=show_genre_key) == False and show_genre_key != 'summary':
-                        if video['genres'][show_genre_key][1] == genre_key:
-                            video_genres.append(genres[genre_key]['name'])
+
+        for video_genre_key, video_genre in video['genres'].iteritems():
+            if self._is_size_key(video_genre_key) == False and video_genre_key != 'summary':
+                name = genres.get(video_genre[1], {}).get('name')
+
+                if name:
+                    video_genres.append(name)
+
         return video_genres
 
     def parse_tags_for_video (self, video):