You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bazarr/libs/subzero/prefs.py

41 lines
1.2 KiB

6 years ago
# coding=utf-8
5 years ago
from __future__ import absolute_import
6 years ago
import traceback
5 years ago
from .constants import PLUGIN_IDENTIFIER
6 years ago
def get_user_prefs(Prefs, Logger):
"""
loads all user prefs regardless of whether they exist in DefaultPrefs or not
:param Prefs:
:param Logger:
:return:
"""
try:
prefs_set = Prefs._sandbox.preferences._sets[PLUGIN_IDENTIFIER]
except:
Logger.Error("Loading user prefs failed: %s", traceback.format_exc())
return {}
user_prefs = {}
try:
xml_path = prefs_set._user_file_path
if not Prefs._core.storage.file_exists(xml_path):
return {}
prefs_str = Prefs._core.storage.load(xml_path, mtime_key=prefs_set)
prefs_xml = Prefs._core.data.xml.from_string(prefs_str)
for el in prefs_xml:
user_prefs[str(el.tag)] = str(el.text)
except:
Logger.Error("Loading user prefs failed: %s", traceback.format_exc())
else:
return user_prefs
return {}
def update_user_prefs(update_prefs, Prefs, Logger):
prefs_set = Prefs._sandbox.preferences._sets[PLUGIN_IDENTIFIER]
prefs_set.update_user_values(**update_prefs)
Logger.Info("User prefs updated")