summaryrefslogtreecommitdiffstats
path: root/module/api/ConfigApi.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/api/ConfigApi.py')
-rw-r--r--module/api/ConfigApi.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/module/api/ConfigApi.py b/module/api/ConfigApi.py
deleted file mode 100644
index 527f494ce..000000000
--- a/module/api/ConfigApi.py
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-from module.Api import Api, RequirePerm, Permission, ConfigHolder, ConfigItem, ConfigInfo
-from module.utils import to_string
-
-from ApiComponent import ApiComponent
-
-# helper function to create a ConfigHolder
-def toConfigHolder(section, config, values):
- holder = ConfigHolder(section, config.name, config.description, config.long_desc)
- holder.items = [ConfigItem(option, x.name, x.description, x.type, to_string(x.default),
- to_string(values.get(option, x.default))) for option, x in
- config.config.iteritems()]
- return holder
-
-
-class ConfigApi(ApiComponent):
- """ Everything related to configuration """
-
- def getConfigValue(self, section, option):
- """Retrieve config value.
-
- :param section: name of category, or plugin
- :param option: config option
- :rtype: str
- :return: config value as string
- """
- value = self.core.config.get(section, option, self.primaryUID)
- return to_string(value)
-
- def setConfigValue(self, section, option, value):
- """Set new config value.
-
- :param section:
- :param option:
- :param value: new config value
- """
- if option in ("limit_speed", "max_speed"): #not so nice to update the limit
- self.core.requestFactory.updateBucket()
-
- self.core.config.set(section, option, value, self.primaryUID)
-
- def getConfig(self):
- """Retrieves complete config of core.
-
- :rtype: dict of section -> ConfigHolder
- """
- data = {}
- for section, config, values in self.core.config.iterCoreSections():
- data[section] = toConfigHolder(section, config, values)
- return data
-
- def getCoreConfig(self):
- """ Retrieves core config sections
-
- :rtype: list of PluginInfo
- """
- return [ConfigInfo(section, config.name, config.description, False, False)
- for section, config, values in self.core.config.iterCoreSections()]
-
- @RequirePerm(Permission.Plugins)
- def getPluginConfig(self):
- """All plugins and addons the current user has configured
-
- :rtype: list of PluginInfo
- """
- # TODO: include addons that are activated by default
- # TODO: multi user
- # TODO: better plugin / addon activated config
- data = []
- active = [x.getName() for x in self.core.addonManager.activePlugins()]
- for name, config, values in self.core.config.iterSections(self.primaryUID):
- # skip unmodified and inactive addons
- if not values and name not in active: continue
-
- item = ConfigInfo(name, config.name, config.description,
- self.core.pluginManager.getCategory(name),
- self.core.pluginManager.isUserPlugin(name),
- values.get("activated", None if "activated" not in config.config else config.config[
- "activated"].default))
- data.append(item)
-
- return data
-
- @RequirePerm(Permission.Plugins)
- def getAvailablePlugins(self):
- """List of all available plugins, that are configurable
-
- :rtype: list of PluginInfo
- """
- # TODO: filter user_context / addons when not allowed
- plugins = [ConfigInfo(name, config.name, config.description,
- self.core.pluginManager.getCategory(name),
- self.core.pluginManager.isUserPlugin(name))
- for name, config, values in self.core.config.iterSections(self.primaryUID)]
-
- return plugins
-
- @RequirePerm(Permission.Plugins)
- def loadConfig(self, name):
- """Get complete config options for desired section
-
- :param name: Name of plugin or config section
- :rtype: ConfigHolder
- """
- # requires at least plugin permissions, but only admin can load core config
- config, values = self.core.config.getSection(name, self.primaryUID)
- return toConfigHolder(name, config, values)
-
-
- @RequirePerm(Permission.Plugins)
- def saveConfig(self, config):
- """Used to save a configuration, core config can only be saved by admins
-
- :param config: :class:`ConfigHolder`
- """
- for item in config.items:
- self.core.config.set(config.name, item.name, item.value, sync=False, user=self.primaryUID)
- # save the changes
- self.core.config.saveValues(self.primaryUID, config.name)
-
- @RequirePerm(Permission.Plugins)
- def deleteConfig(self, plugin):
- """Deletes modified config
-
- :param plugin: plugin name
- """
- #TODO: delete should deactivate addons?
- self.core.config.delete(plugin, self.primaryUID)
-
-
-if Api.extend(ConfigApi):
- del ConfigApi \ No newline at end of file