gibt es eine einfache methode, die settings eines plugins in eine eigene /etc/enigma2/pluginsettings file statt /etc/enigma2/settings zu speichern? danke.
Eigenes settings file fuer Plugin
-
-
alpha
Hat den Titel des Themas von „Eigenes settings file fuer Pugin“ zu „Eigenes settings file fuer Plugin“ geändert. -
wie immer siehe z.B. MediaPortal, einfach ist aber wie immer realtiv
-
ja, ganz einfach ist es nicht... unterstuetzen die beiden klassen denn alle CONFIGxxxxx elemente?
-
Ich denke schon, ich hab das ja von den Dream Sourcen adaptiert.
-
ok danke, dann schaue ich es mir mal genauer an.
-
Ich hatte das nur etwas erweitert damit es mir automatisch die Einstellungen von settings in mein config file migriert.
-
durch den mediaportal code inspiriert habe ich mal etwas "einfacheres" gebastelt, das allerdings keine settings von /etc/enigma2/settings importiert.
Python
Alles anzeigenfrom Components.config import Config, ConfigSubsection from Tools.Directories import resolveFilename, SCOPE_CONFIG class ConfigCockpit(Config): def __init__(self): Config.__init__(self) def pickle(self): result = [] self.pickle_this("config_cockpit", self.saved_value, result) return ''.join(result) def unpickle(self, lines, base_file=True, append=False): tree = {} for l in lines: if not l or l[0] == '#': continue n = l.find('=') name = l[:n] val = l[n + 1:].strip() names = name.split('.') base = tree for n in names[:-1]: base = base.setdefault(n, {}) base[names[-1]] = val if not base_file: # not the initial config file.. # update config.x.y.value when exist try: configEntry = eval(name) if configEntry is not None: configEntry.value = val except (SyntaxError, AttributeError): pass # we inherit from ConfigSubsection, so ... if "config_cockpit" in tree: self.setSavedValue(tree["config_cockpit"], append) config_cockpit = ConfigCockpit() config_cockpit.plugins = ConfigSubsection() class ConfigFileCockpit(): CONFIG_FILE = resolveFilename(SCOPE_CONFIG, "cockpit_settings") def load(self): config_cockpit.loadFromFile(self.CONFIG_FILE, True) def save(self): config_cockpit.saveToFile(self.CONFIG_FILE) configfile_cockpit = ConfigFileCockpit() configfile_cockpit.load()
sollte eigentlich genauso wie das org config funktionieren.
config.plugins.xxxxx wird config_cockpit.plugins.xxxxx
und /etc/enigma2/settings wird /etc/enigma2/cockpit_settings
vielleicht kanns ja mal einer gebrauchen