12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # -*- coding: utf-8 -*-
- from __future__ import absolute_import
-
- import os
-
- from kodiswift.logger import log
- from kodiswift.mockxbmc import utils
-
- __all__ = ['Addon']
-
-
- def _get_env_setting(name):
- return os.getenv('KODISWIFT_%s' % name.upper())
-
-
- # noinspection PyPep8Naming
- class Addon(object):
- def __init__(self, id=None):
- # In CLI mode, kodiswift must be run from the root of the addon
- # directory, so we can rely on getcwd() being correct.
- addon_xml = os.path.join(os.getcwd(), 'addon.xml')
- _id = None
- if os.path.exists(addon_xml):
- _id = utils.get_addon_id(addon_xml)
- self._info = {
- 'id': id or _id,
- 'name': utils.get_addon_name(addon_xml),
- 'profile': 'special://profile/addon_data/%s/' % _id,
- 'path': 'special://home/addons/%s' % _id
- }
- self._strings = {}
- self._settings = {}
- strings_fn = os.path.join(
- os.getcwd(), 'resources', 'language', 'English', 'strings.po')
- utils.load_addon_strings(self, strings_fn)
-
- def getAddonInfo(self, prop):
- properties = ['author', 'changelog', 'description', 'disclaimer',
- 'fanart', 'icon', 'id', 'name', 'path', 'profile',
- 'stars', 'summary', 'type', 'version']
- if prop not in properties:
- raise ValueError('%s is not a valid property.' % prop)
- return self._info.get(prop, 'Unavailable')
-
- def getLocalizedString(self, str_id):
- key = str(str_id)
- if key not in self._strings:
- raise KeyError('id not found in English/strings.po or '
- 'strings.xml.')
- return self._strings[key]
-
- def getSetting(self, key):
- log.warning('xbmcaddon.Plugin.getSetting() has not been implemented '
- 'in CLI mode.')
- try:
- value = self._settings[key]
- except KeyError:
- # see if we have an env var
- value = _get_env_setting(key)
- if _get_env_setting(key) is None:
- value = raw_input(
- '* Please enter a temporary value for %s: ' % key)
- self._settings[key] = value
- return value
-
- def setSetting(self, key, value):
- self._settings[key] = value
-
- def openSettings(self):
- pass
|