Plugin work
This commit is contained in:
111
plugins/movie_tv_info/tmdbscraper/scraper_config.py
Normal file
111
plugins/movie_tv_info/tmdbscraper/scraper_config.py
Normal file
@@ -0,0 +1,111 @@
|
||||
def configure_scraped_details(details, settings):
|
||||
details = _configure_rating_prefix(details, settings)
|
||||
details = _configure_keeporiginaltitle(details, settings)
|
||||
details = _configure_trailer(details, settings)
|
||||
details = _configure_multiple_studios(details, settings)
|
||||
details = _configure_default_rating(details, settings)
|
||||
details = _configure_tags(details, settings)
|
||||
return details
|
||||
|
||||
def configure_tmdb_artwork(details, settings):
|
||||
if 'available_art' not in details:
|
||||
return details
|
||||
|
||||
art = details['available_art']
|
||||
fanart_enabled = settings.getSettingBool('fanart')
|
||||
if not fanart_enabled:
|
||||
if 'fanart' in art:
|
||||
del art['fanart']
|
||||
if 'set.fanart' in art:
|
||||
del art['set.fanart']
|
||||
if not settings.getSettingBool('landscape'):
|
||||
if 'landscape' in art:
|
||||
if fanart_enabled:
|
||||
art['fanart'] = art.get('fanart', []) + art['landscape']
|
||||
del art['landscape']
|
||||
if 'set.landscape' in art:
|
||||
if fanart_enabled:
|
||||
art['set.fanart'] = art.get('set.fanart', []) + art['set.landscape']
|
||||
del art['set.landscape']
|
||||
|
||||
return details
|
||||
|
||||
def is_fanarttv_configured(settings):
|
||||
return settings.getSettingBool('enable_fanarttv_artwork')
|
||||
|
||||
def _configure_rating_prefix(details, settings):
|
||||
if details['info'].get('mpaa'):
|
||||
details['info']['mpaa'] = settings.getSettingString('certprefix') + details['info']['mpaa']
|
||||
return details
|
||||
|
||||
def _configure_keeporiginaltitle(details, settings):
|
||||
if settings.getSettingBool('keeporiginaltitle'):
|
||||
details['info']['title'] = details['info']['originaltitle']
|
||||
return details
|
||||
|
||||
def _configure_trailer(details, settings):
|
||||
if details['info'].get('trailer') and not settings.getSettingBool('trailer'):
|
||||
del details['info']['trailer']
|
||||
return details
|
||||
|
||||
def _configure_multiple_studios(details, settings):
|
||||
if not settings.getSettingBool('multiple_studios'):
|
||||
details['info']['studio'] = details['info']['studio'][:1]
|
||||
return details
|
||||
|
||||
def _configure_default_rating(details, settings):
|
||||
imdb_default = bool(details['ratings'].get('imdb')) and settings.getSettingString('RatingS') == 'IMDb'
|
||||
trakt_default = bool(details['ratings'].get('trakt')) and settings.getSettingString('RatingS') == 'Trakt'
|
||||
default_rating = 'themoviedb'
|
||||
if imdb_default:
|
||||
default_rating = 'imdb'
|
||||
elif trakt_default:
|
||||
default_rating = 'trakt'
|
||||
if default_rating not in details['ratings']:
|
||||
default_rating = list(details['ratings'].keys())[0] if details['ratings'] else None
|
||||
for rating_type in details['ratings'].keys():
|
||||
details['ratings'][rating_type]['default'] = rating_type == default_rating
|
||||
return details
|
||||
|
||||
def _configure_tags(details, settings):
|
||||
if not settings.getSettingBool('add_tags'):
|
||||
del details['info']['tag']
|
||||
return details
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
try:
|
||||
basestring
|
||||
except NameError: # py2 / py3
|
||||
basestring = str
|
||||
|
||||
#pylint: disable=redefined-builtin
|
||||
class PathSpecificSettings(object):
|
||||
# read-only shim for typed `xbmcaddon.Addon().getSetting*` methods
|
||||
def __init__(self, settings_dict, log_fn):
|
||||
self.data = settings_dict
|
||||
self.log = log_fn
|
||||
|
||||
def getSettingBool(self, id):
|
||||
return self._inner_get_setting(id, bool, False)
|
||||
|
||||
def getSettingInt(self, id):
|
||||
return self._inner_get_setting(id, int, 0)
|
||||
|
||||
def getSettingNumber(self, id):
|
||||
return self._inner_get_setting(id, float, 0.0)
|
||||
|
||||
def getSettingString(self, id):
|
||||
return self._inner_get_setting(id, basestring, '')
|
||||
|
||||
def _inner_get_setting(self, setting_id, setting_type, default):
|
||||
value = self.data.get(setting_id)
|
||||
if isinstance(value, setting_type):
|
||||
return value
|
||||
self._log_bad_value(value, setting_id)
|
||||
return default
|
||||
|
||||
def _log_bad_value(self, value, setting_id):
|
||||
if value is None:
|
||||
self.log("requested setting ({0}) was not found.".format(setting_id))
|
||||
else:
|
||||
self.log('failed to load value "{0}" for setting {1}'.format(value, setting_id))
|
Reference in New Issue
Block a user