def get_details(input_uniqueids, handle, settings): if not input_uniqueids: return False details = get_tmdb_scraper(settings).get_details(input_uniqueids) if not details: return False if 'error' in details: header = "The Movie Database Python error with web service TMDB" xbmcgui.Dialog().notification(header, details['error'], xbmcgui.NOTIFICATION_WARNING) log(header + ': ' + details['error'], xbmc.LOGWARNING) return False details = configure_tmdb_artwork(details, settings) if settings.getSettingString( 'RatingS') == 'IMDb' or settings.getSettingBool('imdbanyway'): imdbinfo = get_imdb_details(details['uniqueids']) if 'error' in imdbinfo: header = "The Movie Database Python error with website IMDB" log(header + ': ' + imdbinfo['error'], xbmc.LOGWARNING) else: details = combine_scraped_details_info_and_ratings( details, imdbinfo) if settings.getSettingString( 'RatingS') == 'Trakt' or settings.getSettingBool('traktanyway'): traktinfo = get_trakt_ratinginfo(details['uniqueids']) details = combine_scraped_details_info_and_ratings(details, traktinfo) if is_fanarttv_configured(settings): fanarttv_info = get_fanarttv_artwork( details['uniqueids'], settings.getSettingString('fanarttv_clientkey'), settings.getSettingString('fanarttv_language'), details['_info']['set_tmdbid']) details = combine_scraped_details_available_artwork( details, fanarttv_info) details = configure_scraped_details(details, settings) listitem = xbmcgui.ListItem(details['info']['title'], offscreen=True) listitem.setInfo('video', details['info']) listitem.setCast(details['cast']) listitem.setUniqueIDs(details['uniqueids'], 'tmdb') add_artworks(listitem, details['available_art']) for rating_type, value in details['ratings'].items(): if 'votes' in value: listitem.setRating(rating_type, value['rating'], value['votes'], value['default']) else: listitem.setRating(rating_type, value['rating'], defaultt=value['default']) xbmcplugin.setResolvedUrl(handle=handle, succeeded=True, listitem=listitem) return True
def get_details(input_uniqueids, handle): details = scraper.get_details(input_uniqueids) if not details: return False if 'error' in details: header = "The Movie Database Python error with web service TMDB" xbmcgui.Dialog().notification(header, details['error'], xbmcgui.NOTIFICATION_WARNING) log(header + ': ' + details['error'], xbmc.LOGWARNING) return False imdbinfo = get_imdb_details(details['uniqueids']) if 'error' in imdbinfo: header = "The Movie Database Python error with website IMDB" log(header + ': ' + imdbinfo['error'], xbmc.LOGWARNING) else: details = combine_scraped_details_info_and_ratings(details, imdbinfo) traktinfo = get_trakt_ratinginfo(details['uniqueids']) details = combine_scraped_details_info_and_ratings(details, traktinfo) details = configure_scraped_details(details, ADDON) listitem = xbmcgui.ListItem(details['info']['title'], offscreen=True) listitem.setInfo('video', details['info']) listitem.setCast(details['cast']) listitem.setUniqueIDs(details['uniqueids'], 'tmdb') add_artworks(listitem, details['available_art']) for rating_type, value in details['ratings'].items(): if 'votes' in value: listitem.setRating(rating_type, value['rating'], value['votes'], value['default']) else: listitem.setRating(rating_type, value['rating'], defaultt=value['default']) xbmcplugin.setResolvedUrl(handle=handle, succeeded=True, listitem=listitem) return True