1 def configure_scraped_details(details
, settings
):
2 details
= _configure_rating_prefix(details
, settings
)
3 details
= _configure_keeporiginaltitle(details
, settings
)
4 details
= _configure_trailer(details
, settings
)
5 details
= _configure_multiple_studios(details
, settings
)
6 details
= _configure_default_rating(details
, settings
)
7 details
= _configure_tags(details
, settings
)
10 def configure_tmdb_artwork(details
, settings
):
11 if 'available_art' not in details
:
14 art
= details
['available_art']
15 fanart_enabled
= settings
.getSettingBool('fanart')
16 if not fanart_enabled
:
19 if 'set.fanart' in art
:
21 if not settings
.getSettingBool('landscape'):
22 if 'landscape' in art
:
24 art
['fanart'] = art
.get('fanart', []) + art
['landscape']
26 if 'set.landscape' in art
:
28 art
['set.fanart'] = art
.get('set.fanart', []) + art
['set.landscape']
29 del art
['set.landscape']
33 def is_fanarttv_configured(settings
):
34 return settings
.getSettingBool('enable_fanarttv_artwork')
36 def _configure_rating_prefix(details
, settings
):
37 if details
['info'].get('mpaa'):
38 details
['info']['mpaa'] = settings
.getSettingString('certprefix') + details
['info']['mpaa']
41 def _configure_keeporiginaltitle(details
, settings
):
42 if settings
.getSettingBool('keeporiginaltitle'):
43 details
['info']['title'] = details
['info']['originaltitle']
46 def _configure_trailer(details
, settings
):
47 if details
['info'].get('trailer') and not settings
.getSettingBool('trailer'):
48 del details
['info']['trailer']
51 def _configure_multiple_studios(details
, settings
):
52 if not settings
.getSettingBool('multiple_studios'):
53 details
['info']['studio'] = details
['info']['studio'][:1]
56 def _configure_default_rating(details
, settings
):
57 imdb_default
= bool(details
['ratings'].get('imdb')) and settings
.getSettingString('RatingS') == 'IMDb'
58 trakt_default
= bool(details
['ratings'].get('trakt')) and settings
.getSettingString('RatingS') == 'Trakt'
59 default_rating
= 'themoviedb'
61 default_rating
= 'imdb'
63 default_rating
= 'trakt'
64 if default_rating
not in details
['ratings']:
65 default_rating
= list(details
['ratings'].keys())[0] if details
['ratings'] else None
66 for rating_type
in details
['ratings'].keys():
67 details
['ratings'][rating_type
]['default'] = rating_type
== default_rating
70 def _configure_tags(details
, settings
):
71 if not settings
.getSettingBool('add_tags'):
72 del details
['info']['tag']
75 # pylint: disable=invalid-name
78 except NameError: # py2 / py3
81 #pylint: disable=redefined-builtin
82 class PathSpecificSettings(object):
83 # read-only shim for typed `xbmcaddon.Addon().getSetting*` methods
84 def __init__(self
, settings_dict
, log_fn
):
85 self
.data
= settings_dict
88 def getSettingBool(self
, id):
89 return self
._inner
_get
_setting
(id, bool, False)
91 def getSettingInt(self
, id):
92 return self
._inner
_get
_setting
(id, int, 0)
94 def getSettingNumber(self
, id):
95 return self
._inner
_get
_setting
(id, float, 0.0)
97 def getSettingString(self
, id):
98 return self
._inner
_get
_setting
(id, basestring
, '')
100 def _inner_get_setting(self
, setting_id
, setting_type
, default
):
101 value
= self
.data
.get(setting_id
)
102 if isinstance(value
, setting_type
):
104 self
._log
_bad
_value
(value
, setting_id
)
107 def _log_bad_value(self
, value
, setting_id
):
109 self
.log("requested setting ({0}) was not found.".format(setting_id
))
111 self
.log('failed to load value "{0}" for setting {1}'.format(value
, setting_id
))