Settings
Movie List Directory selection
This commit is contained in:
1 parent
272e0b8527
commit
8682be33fb
27 files changed
+1770
-233
No files matched your search
@@ -27,7 +27,7 @@ class Settings():
|
||||
return self.p
|
||||
|
||||
def sections(self):
|
||||
return self.s
|
||||
return self.p.sections()
|
||||
|
||||
def connectSignals(self):
|
||||
signal('settings.register').connect(self.registerDefaults)
|
||||
@@ -46,24 +46,34 @@ class Settings():
|
||||
self.save(self)
|
||||
|
||||
def set(self, section, option, value):
|
||||
return self.p.set(section, option, value)
|
||||
return self.p.set(section, option, self.cleanValue(value))
|
||||
|
||||
def get(self, option = '', section = 'global', default = ''):
|
||||
|
||||
try:
|
||||
value = self.p.get(section, option)
|
||||
|
||||
if(self.is_int(value)):
|
||||
return int(value)
|
||||
|
||||
if str(value).lower() in self.bool:
|
||||
return self.bool.get(str(value).lower())
|
||||
|
||||
return value if type(value) != str else value.strip()
|
||||
return self.cleanValue(value)
|
||||
except:
|
||||
return default
|
||||
|
||||
def save(self, caller):
|
||||
def cleanValue(self, value):
|
||||
if(self.is_int(value)):
|
||||
return int(value)
|
||||
|
||||
if str(value).lower() in self.bool:
|
||||
return self.bool.get(str(value).lower())
|
||||
|
||||
return value.strip()
|
||||
|
||||
def getValues(self):
|
||||
values = {}
|
||||
for section in self.sections():
|
||||
values[section] = {}
|
||||
for option in self.p.items(section):
|
||||
(option_name, option_value) = option
|
||||
values[section][option_name] = option_value
|
||||
return values
|
||||
|
||||
def save(self, caller = ''):
|
||||
with open(self.file, 'wb') as configfile:
|
||||
self.p.write(configfile)
|
||||
|
||||
|
||||
@@ -8,12 +8,14 @@ log = CPLog(__name__)
|
||||
class SettingsLoader:
|
||||
|
||||
configs = {}
|
||||
sections = {}
|
||||
|
||||
def __init__(self, root = ''):
|
||||
|
||||
def __init__(self):
|
||||
self.settings_register = signal('settings.register')
|
||||
self.settings_save = signal('settings.save')
|
||||
|
||||
def load(self, root = ''):
|
||||
|
||||
self.paths = {
|
||||
'plugins' : ('couchpotato.core.plugins', os.path.join(root, 'couchpotato', 'core', 'plugins')),
|
||||
'providers' : ('couchpotato.core.providers', os.path.join(root, 'couchpotato', 'core', 'providers')),
|
||||
@@ -42,8 +44,13 @@ class SettingsLoader:
|
||||
module_name = '%s.%s' % (module, name)
|
||||
try:
|
||||
m = getattr(self.loadModule(module_name), name)
|
||||
(section, options) = m.config
|
||||
self.settings_register.send(section, options = options, save = save)
|
||||
|
||||
for section in m.config:
|
||||
self.addSection(section['name'], section)
|
||||
options = {}
|
||||
for key, option in section['options'].iteritems():
|
||||
options[key] = option['default']
|
||||
self.settings_register.send(section['name'], options = options, save = save)
|
||||
|
||||
return True
|
||||
except Exception, e:
|
||||
@@ -62,3 +69,11 @@ class SettingsLoader:
|
||||
return m
|
||||
except:
|
||||
raise
|
||||
|
||||
def addSection(self, section_name, options):
|
||||
self.sections[section_name] = options
|
||||
|
||||
def getSections(self):
|
||||
return self.sections
|
||||
|
||||
settings_loader = SettingsLoader()
|
||||
Reference in new issue
Block a user