Browse Source

more tvdb info provider guards

pull/2354/head
Jason Mehring 12 years ago
parent
commit
e0aba01866
  1. 118
      couchpotato/core/providers/info/thetvdb/main.py

118
couchpotato/core/providers/info/thetvdb/main.py

@ -225,15 +225,18 @@ class TheTVDb(ShowProvider):
'zap2it_id': u'SH01009396' 'zap2it_id': u'SH01009396'
""" """
# Make sure we have a valid show id, not '' or None #
# NOTE: show object only allows direct access via
# show['id'], not show.get('id')
#
# TODO: Make sure we have a valid show id, not '' or None
#if len (show['id']) is 0: #if len (show['id']) is 0:
# return None # return None
## Images ## Images
poster = show['poster'] or None poster = show['poster'] or None
backdrop = show['fanart'] or None backdrop = show['fanart'] or None
#poster = self.getImage(show, type = 'poster', size = 'cover')
#backdrop = self.getImage(show, type = 'fanart', size = 'w1280')
genres = [] if show['genre'] is None else show['genre'].strip('|').split('|') genres = [] if show['genre'] is None else show['genre'].strip('|').split('|')
if show['firstaired'] is not None: if show['firstaired'] is not None:
@ -242,12 +245,17 @@ class TheTVDb(ShowProvider):
else: else:
year = None year = None
try:
id = int(show['id'])
except:
id = None
show_data = { show_data = {
'id': int(show['id']), 'id': id,
'type': 'show', 'type': 'show',
'primary_provider': 'thetvdb', 'primary_provider': 'thetvdb',
'titles': [show['seriesname'], ] or None, 'titles': [show['seriesname'] or u'', ],
'original_title': show['seriesname'] or None, 'original_title': show['seriesname'] or u'',
'images': { 'images': {
'poster': [poster] if poster else [], 'poster': [poster] if poster else [],
'backdrop': [backdrop] if backdrop else [], 'backdrop': [backdrop] if backdrop else [],
@ -296,7 +304,7 @@ class TheTVDb(ShowProvider):
""" """
number, season = season_tuple number, season = season_tuple
title = toUnicode('%s - Season %s' % (show['seriesname'], str(number))) title = toUnicode('%s - Season %s' % (show['seriesname'] or u'', str(number)))
poster = [] poster = []
try: try:
for id, data in show.data['_banners']['season']['season'].items(): for id, data in show.data['_banners']['season']['season'].items():
@ -306,15 +314,20 @@ class TheTVDb(ShowProvider):
except: except:
pass pass
try:
id = (show['id'] + ':' + str(number))
except:
id = None
# XXX: work on title; added defualt_title to fix an error # XXX: work on title; added defualt_title to fix an error
season_data = { season_data = {
'id': (show['id'] + ':' + str(number)), 'id': id,
'type': 'season', 'type': 'season',
'primary_provider': 'thetvdb', 'primary_provider': 'thetvdb',
'titles': [title, ], 'titles': [title, ],
'original_title': title, 'original_title': title,
'via_thetvdb': True, 'via_thetvdb': True,
'parent_identifier': show['id'], 'parent_identifier': show['id'] or None,
'seasonnumber': str(number), 'seasonnumber': str(number),
'images': { 'images': {
'poster': poster, 'poster': poster,
@ -366,71 +379,70 @@ class TheTVDb(ShowProvider):
('episodename', u'Pilot')] ('episodename', u'Pilot')]
""" """
## Images poster = episode.get('filename', [])
#poster = self.getImage(episode, type = 'poster', size = 'cover')
#backdrop = self.getImage(episode, type = 'fanart', size = 'w1280')
##poster_original = self.getImage(episode, type = 'poster', size = 'original')
##backdrop_original = self.getImage(episode, type = 'backdrop', size = 'original')
poster = episode['filename'] or []
backdrop = [] backdrop = []
genres = [] genres = []
plot = "%s - %sx%s - %s" % (show['seriesname'], plot = "%s - %sx%s - %s" % (show['seriesname'] or u'',
episode['seasonnumber'], episode.get('seasonnumber', u'?'),
episode['episodenumber'], episode.get('episodenumber', u'?'),
episode['overview']) episode.get('overview', u''))
if episode['firstaired'] is not None: if episode.get('firstaired', None) is not None:
try: year = datetime.strptime(episode['firstaired'], '%Y-%m-%d').year try: year = datetime.strptime(episode['firstaired'], '%Y-%m-%d').year
except: year = None except: year = None
else: else:
year = None year = None
try:
id = int(episode['id'])
except:
id = None
episode_data = { episode_data = {
'id': int(episode['id']), 'id': id,
'type': 'episode', 'type': 'episode',
'primary_provider': 'thetvdb', 'primary_provider': 'thetvdb',
'via_thetvdb': True, 'via_thetvdb': True,
'thetvdb_id': int(episode['id']), 'thetvdb_id': id,
'titles': [episode['episodename'], ] or None, 'titles': [episode.get('episodename', u''), ],
'original_title': episode['episodename'] or None, 'original_title': episode.get('episodename', u'') ,
'images': { 'images': {
'poster': [poster] if poster else [], 'poster': [poster] if poster else [],
'backdrop': [backdrop] if backdrop else [], 'backdrop': [backdrop] if backdrop else [],
'poster_original': [], 'poster_original': [],
'backdrop_original': [], 'backdrop_original': [],
}, },
'imdb': episode['imdb_id'] or None, 'imdb': episode.get('imdb_id', None),
'runtime': None, 'runtime': None,
'released': episode['firstaired'] or None, 'released': episode.get('firstaired', None),
'year': year, 'year': year,
'plot': plot, 'plot': plot,
'genres': genres, 'genres': genres,
'parent_identifier': show['id'], 'parent_identifier': show['id'] or None,
'seasonnumber': episode['seasonnumber'] or None, 'seasonnumber': episode.get('seasonnumber', None),
'episodenumber': episode['episodenumber'] or None, 'episodenumber': episode.get('episodenumber', None),
'combined_episodenumber': episode['combined_episodenumber'] or None, 'combined_episodenumber': episode.get('combined_episodenumber', None),
'absolute_number': episode['absolute_number'] or None, 'absolute_number': episode.get('absolute_number', None),
'combined_season': episode['combined_season'] or None, 'combined_season': episode.get('combined_season', None),
'productioncode': episode['productioncode'] or None, 'productioncode': episode.get('productioncode', None),
'seriesid': episode['seriesid'] or None, 'seriesid': episode.get('seriesid', None),
'seasonid': episode['seasonid'] or None, 'seasonid': episode.get('seasonid', None),
'firstaired': episode['firstaired'] or None, 'firstaired': episode.get('firstaired', None),
'thumb_added': episode['thumb_added'] or None, 'thumb_added': episode.get('thumb_added', None),
'thumb_height': episode['thumb_height'] or None, 'thumb_height': episode.get('thumb_height', None),
'thumb_width': episode['thumb_width'] or None, 'thumb_width': episode.get('thumb_width', None),
'rating': episode['rating'] or None, 'rating': episode.get('rating', None),
'ratingcount': episode['ratingcount'] or None, 'ratingcount': episode.get('ratingcount', None),
'epimgflag': episode['epimgflag'] or None, 'epimgflag': episode.get('epimgflag', None),
'dvd_episodenumber': episode['dvd_episodenumber'] or None, 'dvd_episodenumber': episode.get('dvd_episodenumber', None),
'dvd_discid': episode['dvd_discid'] or None, 'dvd_discid': episode.get('dvd_discid', None),
'dvd_chapter': episode['dvd_chapter'] or None, 'dvd_chapter': episode.get('dvd_chapter', None),
'dvd_season': episode['dvd_season'] or None, 'dvd_season': episode.get('dvd_season', None),
'tms_export': episode['tms_export'] or None, 'tms_export': episode.get('tms_export', None),
'writer': episode['writer'] or None, 'writer': episode.get('writer', None),
'director': episode['director'] or None, 'director': episode.get('director', None),
'gueststars': episode['gueststars'] or None, 'gueststars': episode.get('gueststars', None),
'lastupdated': episode['lastupdated'] or None, 'lastupdated': episode.get('lastupdated', None),
'language': episode['language'] or None, 'language': episode.get('language', None),
} }
episode_data = dict((k, v) for k, v in episode_data.iteritems() if v) episode_data = dict((k, v) for k, v in episode_data.iteritems() if v)

Loading…
Cancel
Save