From f0bde7316d4ac9e0b95e18b8617b7d1a608cc98d Mon Sep 17 00:00:00 2001 From: mano3m Date: Fri, 22 Nov 2013 13:07:53 +0100 Subject: [PATCH] [Metadata][XBMC] Update new actors to actor_roles --- couchpotato/core/providers/info/omdbapi/main.py | 6 +++++- couchpotato/core/providers/info/themoviedb/main.py | 13 ++++++++----- couchpotato/core/providers/metadata/xbmc/main.py | 4 +++- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/couchpotato/core/providers/info/omdbapi/main.py b/couchpotato/core/providers/info/omdbapi/main.py index c5db5eab..605dadf1 100755 --- a/couchpotato/core/providers/info/omdbapi/main.py +++ b/couchpotato/core/providers/info/omdbapi/main.py @@ -84,6 +84,10 @@ class OMDBAPI(MovieProvider): year = tryInt(movie.get('Year', '')) + actors = {} + for actor in splitString(movie.get('Actors', '')): + actors[actor] = '' #omdb does not return actor roles + movie_data = { 'type': 'movie', 'via_imdb': True, @@ -105,7 +109,7 @@ class OMDBAPI(MovieProvider): 'genres': splitString(movie.get('Genre', '')), 'directors': splitString(movie.get('Director', '')), 'writers': splitString(movie.get('Writer', '')), - 'actors': [{actor: ''} for actor in splitString(movie.get('Actors', ''))], + 'actor_roles': actors, } movie_data = dict((k, v) for k, v in movie_data.iteritems() if v) except: diff --git a/couchpotato/core/providers/info/themoviedb/main.py b/couchpotato/core/providers/info/themoviedb/main.py index cb44f6d5..cd957927 100644 --- a/couchpotato/core/providers/info/themoviedb/main.py +++ b/couchpotato/core/providers/info/themoviedb/main.py @@ -111,10 +111,13 @@ class TheMovieDb(MovieProvider): year = None # Gather actors data - actors = [] + actors = {} for cast_item in movie.cast: - actors.append({toUnicode(cast_item.name): toUnicode(cast_item.character)}) - images.append({'actor %s' % toUnicode(cast_item.name): self.getImage(cast_item, type = 'profile', size = 'original')}) + try: + actors[toUnicode(cast_item.name)] = toUnicode(cast_item.character) + images['actor %s' % toUnicode(cast_item.name)] = self.getImage(cast_item, type = 'profile', size = 'original') + except: + log.debug('Error getting cast info for %s: %s', (cast_item, traceback.format_exc())) movie_data = { 'type': 'movie', @@ -130,7 +133,7 @@ class TheMovieDb(MovieProvider): 'plot': movie.overview, 'genres': genres, 'collection': getattr(movie.collection, 'name', None), - 'actors': actors + 'actor_roles': actors } movie_data = dict((k, v) for k, v in movie_data.iteritems() if v) @@ -154,7 +157,7 @@ class TheMovieDb(MovieProvider): try: image_url = getattr(movie, type).geturl(size = 'original') except: - log.debug('Failed getting %s.%s for "%s"', (type, size, movie.title)) + log.debug('Failed getting %s.%s for "%s"', (type, size, movie)) return image_url diff --git a/couchpotato/core/providers/metadata/xbmc/main.py b/couchpotato/core/providers/metadata/xbmc/main.py index 0d853dfe..4c547c35 100644 --- a/couchpotato/core/providers/metadata/xbmc/main.py +++ b/couchpotato/core/providers/metadata/xbmc/main.py @@ -89,7 +89,9 @@ class XBMC(MetaDataBase): genres.text = toUnicode(genre) # Actors - for actor_name, role_name in movie_info.get('actors', {}): + for actor_name in movie_info.get('actor_roles', {}): + role_name = movie_info['actor_roles'][actor_name] + actor = SubElement(nfoxml, 'actor') name = SubElement(actor, 'name') name.text = toUnicode(actor_name)