def get_niceitem(self, item): label = self.get_title(item) icon = self.get_icon(item) poster = self.get_season_poster(item) or icon thumb = self.get_season_thumb(item) or '' fanart = self.get_fanart(item) cast = self.get_cast(item) infolabels = self.get_infolabels(item) infolabels = utils.merge_two_dicts(infolabels, self.get_trailer(item)) infolabels = utils.merge_two_dicts(infolabels, self.get_director_writer(item)) infolabels = utils.del_empty_keys(infolabels, ['N/A', '0.0', '0']) infoproperties = self.get_infoproperties(item) infoproperties = utils.merge_two_dicts(infoproperties, self.get_cast_properties(cast)) infoproperties = utils.merge_two_dicts(infoproperties, self.get_crew_properties(item)) infoproperties = utils.del_empty_keys(infoproperties, ['N/A', '0.0', '0']) return { 'label': label, 'icon': icon, 'poster': poster, 'thumb': thumb, 'fanart': fanart, 'cast': cast, 'infolabels': infolabels, 'infoproperties': infoproperties, 'tmdb_id': infoproperties.get('tmdb_id'), 'imdb_id': infoproperties.get('imdb_id'), 'tvdb_id': infoproperties.get('tvdb_id') }
def get_infoproperties(self, item): infoproperties = {} infoproperties['watchedepisodes'] = item.get('watchedepisodes') infoproperties['metacritic_rating'] = '{0:.1f}'.format( utils.try_parse_float( item.get('ratings', {}).get('metacritic', {}).get('rating'))) infoproperties['imdb_rating'] = '{0:.1f}'.format( utils.try_parse_float( item.get('ratings', {}).get('imdb', {}).get('rating'))) infoproperties['imdb_votes'] = '{:0,.0f}'.format( utils.try_parse_float( item.get('ratings', {}).get('imdb', {}).get('votes'))) infoproperties['tmdb_rating'] = '{0:.1f}'.format( utils.try_parse_float( item.get('ratings', {}).get('themoviedb', {}).get('rating'))) infoproperties['tmdb_votes'] = '{:0,.0f}'.format( utils.try_parse_float( item.get('ratings', {}).get('themoviedb', {}).get('votes'))) infoproperties['set.numitems'] = item.get('limits', {}).get('total') or '' movies_set = item.get('movies') or None if movies_set: years = [] for m in movies_set: year = utils.try_parse_int(m.get('year')) years.append(year) yearl = min(years) yearh = max(years) infoproperties['set.years'] = '{0} - {1}'.format(yearl, yearh) infoproperties = utils.del_empty_keys(infoproperties, ['N/A', '0.0', '0']) return infoproperties
def get_infoproperties(self, item): infoproperties = {} infoproperties['awards'] = item.get('awards', None) infoproperties['metacritic_rating'] = item.get('metascore', None) infoproperties['imdb_rating'] = item.get('imdbRating', None) infoproperties['imdb_votes'] = item.get('imdbVotes', None) infoproperties['rottentomatoes_rating'] = item.get('tomatoMeter', None) infoproperties['rottentomatoes_image'] = item.get('tomatoImage', None) infoproperties['rottentomatoes_reviewstotal'] = '{:0,.0f}'.format( utils.try_parse_int(item.get('tomatoReviews'))) if item.get( 'tomatoReviews') else None infoproperties['rottentomatoes_reviewsfresh'] = '{:0,.0f}'.format( utils.try_parse_int( item.get('tomatoFresh'))) if item.get('tomatoFresh') else None infoproperties['rottentomatoes_reviewsrotten'] = '{:0,.0f}'.format( utils.try_parse_int(item.get('tomatoRotten'))) if item.get( 'tomatoRotten') else None infoproperties['rottentomatoes_consensus'] = item.get( 'tomatoConsensus', None) infoproperties['rottentomatoes_usermeter'] = item.get( 'tomatoUserMeter', None) infoproperties['rottentomatoes_userreviews'] = '{:0,.0f}'.format( utils.try_parse_int(item.get('tomatoUserReviews'))) if item.get( 'tomatoUserReviews') else None infoproperties = utils.del_empty_keys(infoproperties, ['N/A', '0.0', '0']) return infoproperties
def get_infoproperties(self, item): infoproperties = {} infoproperties['watchedepisodes'] = item.get('watchedepisodes') infoproperties['metacritic_rating'] = '{0:.1f}'.format(utils.try_parse_float(item.get('ratings', {}).get('metacritic', {}).get('rating'))) infoproperties['imdb_rating'] = '{0:.1f}'.format(utils.try_parse_float(item.get('ratings', {}).get('imdb', {}).get('rating'))) infoproperties['imdb_votes'] = '{:0,.0f}'.format(utils.try_parse_float(item.get('ratings', {}).get('imdb', {}).get('votes'))) infoproperties['tmdb_rating'] = '{0:.1f}'.format(utils.try_parse_float(item.get('ratings', {}).get('themoviedb', {}).get('rating'))) infoproperties['tmdb_votes'] = '{:0,.0f}'.format(utils.try_parse_float(item.get('ratings', {}).get('themoviedb', {}).get('votes'))) infoproperties = utils.del_empty_keys(infoproperties, ['N/A', '0.0', '0']) return infoproperties
def get_person_stats(self, person): infoproperties = {} infoproperties['numitems.dbid.movies'] = self.get_num_credits('movie', person) infoproperties['numitems.dbid.tvshows'] = self.get_num_credits('tvshow', person) infoproperties['numitems.dbid.episodes'] = self.get_num_credits('episode', person) infoproperties['numitems.dbid.total'] = ( utils.try_parse_int(infoproperties.get('numitems.dbid.movies')) + utils.try_parse_int(infoproperties.get('numitems.dbid.tvshows')) + utils.try_parse_int(infoproperties.get('numitems.dbid.episodes'))) infoproperties = utils.del_empty_keys(infoproperties, ['N/A', '0.0', '0']) return infoproperties
def get_infolabels(self, item, key): infolabels = {} infolabels['genre'] = item.get('genre', []) infolabels['country'] = item.get('country', []) infolabels['episode'] = item.get('episode') infolabels['season'] = item.get('season') infolabels['sortepisode'] = item.get('sortepisode') infolabels['sortseason'] = item.get('sortseason') infolabels['episodeguide'] = item.get('episodeguide') infolabels['showlink'] = item.get('showlink', []) infolabels['top250'] = item.get('top250') infolabels['setid'] = item.get('setid') infolabels['tracknumber'] = item.get('tracknumber') infolabels['rating'] = item.get('rating') infolabels['userrating'] = item.get('userrating') infolabels['watched'] = item.get('watched') infolabels['playcount'] = utils.try_parse_int(item.get('playcount')) infolabels['overlay'] = item.get('overlay') infolabels['director'] = item.get('director', []) infolabels['mpaa'] = item.get('mpaa') infolabels['plot'] = item.get('plot') infolabels['plotoutline'] = item.get('plotoutline') infolabels['title'] = item.get('title') infolabels['originaltitle'] = item.get('originaltitle') infolabels['sorttitle'] = item.get('sorttitle') infolabels['duration'] = item.get('duration') infolabels['studio'] = item.get('studio', []) infolabels['tagline'] = item.get('tagline') infolabels['writer'] = item.get('writer', []) infolabels['tvshowtitle'] = item.get('tvshowtitle') infolabels['premiered'] = item.get('premiered') infolabels['status'] = item.get('status') infolabels['set'] = item.get('set') infolabels['setoverview'] = item.get('setoverview') infolabels['tag'] = item.get('tag', []) infolabels['imdbnumber'] = item.get('imdbnumber') infolabels['code'] = item.get('code') infolabels['aired'] = item.get('aired') infolabels['credits'] = item.get('credits') infolabels['lastplayed'] = item.get('lastplayed') infolabels['album'] = item.get('album') infolabels['artist'] = item.get('artist', []) infolabels['votes'] = item.get('votes') infolabels['path'] = item.get('path') infolabels['trailer'] = item.get('trailer') infolabels['dateadded'] = item.get('dateadded') infolabels['overlay'] = 5 if utils.try_parse_int( item.get('playcount')) > 0 and key in ['movie', 'episode'] else 4 infolabels = utils.del_empty_keys(infolabels, ['N/A', '0.0', '0']) return infolabels
def get_request_item(self, imdb_id=None, title=None, year=None, tomatoes=True, fullplot=True, cache_only=False): kwparams = {} kwparams['i'] = imdb_id kwparams['t'] = title kwparams['y'] = year kwparams['plot'] = 'full' if fullplot else 'short' kwparams['tomatoes'] = 'True' if tomatoes else None kwparams = utils.del_empty_keys(kwparams) request = self.get_request_lc(is_json=False, cache_only=cache_only, r='xml', **kwparams) if request and request.get('root') and not request.get('root').get('response') == 'False': request = request.get('root').get('movie')[0] else: request = {} return request
def get_infolabels(self, item): infolabels = {} infolabels['title'] = item.get('title', None) infolabels['year'] = item.get('year', None) infolabels['mpaa'] = item.get('rated', None) infolabels['rating'] = item.get('imdbRating', None) infolabels['votes'] = item.get('imdbVotes', None) infolabels['duration'] = int(item.get('runtime', '00000')[:-4]) * 60 infolabels['genre'] = item.get('genre', '').split(', ') infolabels['director'] = item.get('director', None) infolabels['writer'] = item.get('writer', '').split(', ') infolabels['cast'] = item.get('cast', '').split(', ') infolabels['plot'] = item.get('plot', None) infolabels['country'] = item.get('country', '').split(', ') infolabels['mediatype'] = item.get('type', None) infolabels['imdbnumber'] = item.get('imdbID', None) infolabels['studio'] = item.get('Production', None) infolabels = utils.del_empty_keys(infolabels, ['N/A', '0.0', '0']) return infolabels
def get_infoproperties(self, item): infoproperties = {} infoproperties['awards'] = item.get('awards', None) infoproperties['oscar_wins'] = utils.get_between_strings( item.get('awards', ''), 'Won ', ' Oscar') infoproperties['oscar_nominations'] = utils.get_between_strings( item.get('awards', ''), 'Nominated for ', ' Oscar') infoproperties['award_wins'] = utils.get_between_strings( item.get('awards', ''), '. Another ', ' wins') or utils.get_between_strings( item.get('awards', ''), '', ' wins') infoproperties['award_nominations'] = utils.get_between_strings( item.get('awards', ''), 'wins & ', ' nominations') or utils.get_between_strings( item.get('awards', ''), '', ' nominations') infoproperties['metacritic_rating'] = item.get('metascore', None) infoproperties['imdb_rating'] = item.get('imdbRating', None) infoproperties['imdb_votes'] = item.get('imdbVotes', None) infoproperties['rottentomatoes_rating'] = item.get('tomatoMeter', None) infoproperties['rottentomatoes_image'] = item.get('tomatoImage', None) infoproperties['rottentomatoes_reviewstotal'] = '{:0,.0f}'.format( utils.try_parse_int(item.get('tomatoReviews'))) if item.get( 'tomatoReviews') else None infoproperties['rottentomatoes_reviewsfresh'] = '{:0,.0f}'.format( utils.try_parse_int( item.get('tomatoFresh'))) if item.get('tomatoFresh') else None infoproperties['rottentomatoes_reviewsrotten'] = '{:0,.0f}'.format( utils.try_parse_int(item.get('tomatoRotten'))) if item.get( 'tomatoRotten') else None infoproperties['rottentomatoes_consensus'] = item.get( 'tomatoConsensus', None) infoproperties['rottentomatoes_usermeter'] = item.get( 'tomatoUserMeter', None) infoproperties['rottentomatoes_userreviews'] = '{:0,.0f}'.format( utils.try_parse_int(item.get('tomatoUserReviews'))) if item.get( 'tomatoUserReviews') else None infoproperties = utils.del_empty_keys(infoproperties, ['N/A', '0.0', '0']) return infoproperties
def build_json(self, file): xmlstring = utils.load_filecontent(file) if not xmlstring: return json = [] for variable in ET.fromstring(xmlstring): if not variable.attrib.get('name'): continue # No name specified so skip if variable.tag not in ['expression', 'variable']: continue # Not an expression or variable so skip item = {} if variable.tag == 'expression' and variable.text: item['expression'] = variable.text elif variable.tag == 'variable': item['values'] = [{ i.attrib.get('condition') or 'True': i.text } for i in variable if i.text] if not item.get('expression') and not item.get('values'): continue # No values or expression so skip item['name'] = variable.attrib.get('name') item['containers'] = [ utils.try_parse_int(i) for i in variable.attrib.get('containers', '').split(',') if i ] item['listitems'] = {} item['listitems']['start'] = utils.try_parse_int( variable.attrib.get('start')) item['listitems']['end'] = utils.try_parse_int( variable.attrib.get('end')) item['parent'] = variable.attrib.get('parent') json.append(utils.del_empty_keys(item)) return dumps(json)