def _get_tmdb_meta_data(self, imdb_id): #get metadata text using themoviedb api tmdb = TMDB() md = tmdb.imdbLookup(imdb_id) if md is None: # create an empty dict so below will at least populate empty data for the db insert. md = {} # copy tmdb to our own for conformity and eliminate KeyError. # we set a default value for those keys not returned by tmdb. meta = {} meta['imdb_id'] = imdb_id meta['tmdb_id'] = md.get('id', '') meta['name'] = md.get('name', '') meta['rating'] = md.get('rating', 0) meta['duration'] = md.get('runtime', 0) meta['plot'] = md.get('overview', '') meta['mpaa'] = md.get('certification', '') meta['premiered'] = md.get('released', '') meta['trailer_url'] = md.get('trailer', '') meta['genres'] = '' meta['studios'] = '' try: meta['genres'] = (md.get('genres', '')[0])['name'] except: try: meta['genres'] = (md.get('genres', '')[1])['name'] except: try: meta['genres'] = (md.get('genres', '')[2])['name'] except: try: meta['genres'] = (md.get('genres', '')[3])['name'] except: #print 'genres failed: ',md.get('genres', '') pass try: meta['studios'] = (md.get('studios', '')[0])['name'] except: try: meta['studios'] = (md.get('studios', '')[1])['name'] except: try: meta['studios'] = (md.get('studios', '')[2])['name'] except: try: meta['studios'] = (md.get('studios', '')[3])['name'] except: #print 'studios failed: ',md.get('studios', '') pass #meta['cast'] = md.get('cast', '') #set whether that database row will be accompanied by pre-packed images. meta['imgs_prepacked'] = self.classmode # define these early cuz they must exist whether posters do or not meta['thumb_url'] = '' meta['cover_url'] = '' if md.has_key('posters'): # find first thumb poster url for poster in md['posters']: if poster['image']['size'] == 'thumb': meta['thumb_url'] = poster['image']['url'] break # find first cover poster url for poster in md['posters']: if poster['image']['size'] == 'cover': meta['cover_url'] = poster['image']['url'] break meta['backdrop_url'] = '' if md.has_key('backdrops'): # find first original backdrop url for backdrop in md['backdrops']: if backdrop['image']['size'] == 'original': meta['backdrop_url'] = backdrop['image']['url'] break return meta