def save_setting(key, value, is_list=False):
xbmc.log('[%s] Tyring to save setting: key "%s" / value "%s"' %
(ADDON.getAddonInfo('id'), key, str(value)), xbmc.LOGDEBUG)
file_path = xbmc.translatePath(
os.path.join(ADDON.getAddonInfo('profile'), 'settings.xml'))
if not os.path.exists(file_path):
generate_settings_file(file_path)
tree = eT.parse(file_path)
root = tree.getroot()
updated = False
for item in root.findall('setting'):
if item.attrib['id'] == key:
if is_list:
cur_values = item.attrib['value']
if not cur_values:
cur_values = []
else:
cur_values = json.loads(cur_values)
if isinstance(value, list):
for val in value:
if val not in cur_values:
cur_values.append(val)
else:
if value not in cur_values:
cur_values.append(value)
item.attrib['value'] = json.dumps(cur_values)
ADDON.setSetting(key, cur_values)
else:
item.attrib['value'] = value
ADDON.setSetting(key, value)
updated = True
if updated:
tree.write(file_path)
return True
评论列表
文章目录