More collection artwork: use TheMovieDB art

This commit is contained in:
tomkat83 2017-05-31 11:21:14 +02:00
parent f4507a3630
commit 2fcdda48fb

View file

@ -1881,7 +1881,8 @@ class API():
If not found in item's Plex metadata, check themovidedb.org If not found in item's Plex metadata, check themovidedb.org
collection=True will try to return the collection's ID collection=True will try to return the three-tuple:
collection ID, poster-path, background-path
None is returned if unsuccessful None is returned if unsuccessful
""" """
@ -2026,9 +2027,28 @@ class API():
mediaId = str(data["external_ids"].get("tvdb_id")) mediaId = str(data["external_ids"].get("tvdb_id"))
break break
else: else:
if data.get("belongs_to_collection") is not None: if data.get("belongs_to_collection") is None:
mediaId = str(data.get("belongs_to_collection").get("id")) continue
log.debug('Retrieved collections tmdb id %s' % mediaId) mediaId = str(data.get("belongs_to_collection").get("id"))
log.debug('Retrieved collections tmdb id %s for %s'
% (mediaId, title))
url = 'https://api.themoviedb.org/3/collection/%s' % mediaId
data = DownloadUtils().downloadUrl(
url,
authenticate=False,
parameters=parameters,
timeout=7)
try:
data.get('poster_path')
except AttributeError:
log.info('Could not find TheMovieDB poster paths for %s in'
'the language %s' % (title, language))
continue
else:
poster = 'https://image.tmdb.org/t/p/original%s' % data.get('poster_path')
background = 'https://image.tmdb.org/t/p/original%s' % data.get('backdrop_path')
mediaId = mediaId, poster, background
break
return mediaId return mediaId
def getFanartTVArt(self, mediaId, allartworks, setInfo=False): def getFanartTVArt(self, mediaId, allartworks, setInfo=False):
@ -2159,8 +2179,19 @@ class API():
# fanart tv only for movie or tv show # fanart tv only for movie or tv show
externalId = self.getExternalItemId(collection=True) externalId = self.getExternalItemId(collection=True)
if externalId is not None: if externalId is not None:
try:
externalId, poster, background = externalId
except TypeError:
poster, background = None, None
if poster is not None:
allartworks['Primary'] = poster
if background is not None:
allartworks['Backdrop'].append(background)
allartworks = self.getFanartTVArt(externalId, allartworks, True) allartworks = self.getFanartTVArt(externalId, allartworks, True)
return allartworks else:
log.info('Did not find a set/collection ID on TheMovieDB using %s.'
' Artwork will be missing.' % self.getTitle())
return allartworks
def shouldStream(self): def shouldStream(self):
""" """