def get_skinsettings(filters=None):
'''get all active skin settings'''
all_skinsettings = []
guisettings_path = 'special://profile/addon_data/%s/settings.xml' % xbmc.getSkinDir()
if xbmcvfs.exists(guisettings_path):
doc = parse(xbmc.translatePath(guisettings_path).decode("utf-8"))
skinsettings = doc.documentElement.getElementsByTagName('setting')
for skinsetting in skinsettings:
settingname = skinsetting.attributes['id'].nodeValue
settingtype = skinsetting.attributes['type'].nodeValue
if isinstance(settingname, unicode):
settingname = settingname.encode("utf-8")
# we must grab the actual values because the xml file only updates at restarts
if settingtype == "bool":
if "$INFO" not in settingname and xbmc.getCondVisibility("Skin.HasSetting(%s)" % settingname):
settingvalue = "true"
else:
settingvalue = "false"
else:
settingvalue = xbmc.getInfoLabel("Skin.String(%s)" % settingname)
if not filters:
# no filter - just add all settings we can find
all_skinsettings.append((settingtype, settingname, settingvalue))
else:
# only select settings defined in our filters
for filteritem in filters:
if filteritem.lower() in settingname.lower():
all_skinsettings.append((settingtype, settingname, settingvalue))
return all_skinsettings
backuprestore.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录