diff options
Diffstat (limited to 'module/api')
-rw-r--r-- | module/api/ApiComponent.py | 2 | ||||
-rw-r--r-- | module/api/ConfigApi.py | 9 | ||||
-rw-r--r-- | module/api/CoreApi.py | 20 | ||||
-rw-r--r-- | module/api/FileApi.py | 2 |
4 files changed, 18 insertions, 15 deletions
diff --git a/module/api/ApiComponent.py b/module/api/ApiComponent.py index c3b8c974b..3948086c2 100644 --- a/module/api/ApiComponent.py +++ b/module/api/ApiComponent.py @@ -18,6 +18,6 @@ class ApiComponent(Iface): self.core = core assert isinstance(user, User) self.user = user - self.userHandle = 0 + self.primaryUID = 0 # No instantiating! raise Exception()
\ No newline at end of file diff --git a/module/api/ConfigApi.py b/module/api/ConfigApi.py index 55e0aa49b..9df9455a2 100644 --- a/module/api/ConfigApi.py +++ b/module/api/ConfigApi.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from module.Api import Api, UserContext, RequirePerm, Permission, ConfigHolder, ConfigItem, ConfigInfo +from module.Api import Api, RequirePerm, Permission, ConfigHolder, ConfigItem, ConfigInfo from module.utils import to_string from ApiComponent import ApiComponent @@ -9,7 +9,6 @@ from ApiComponent import ApiComponent class ConfigApi(ApiComponent): """ Everything related to configuration """ - @UserContext def getConfigValue(self, section, option): """Retrieve config value. @@ -21,7 +20,6 @@ class ConfigApi(ApiComponent): value = self.core.config.get(section, option, self.user) return to_string(value) - @UserContext def setConfigValue(self, section, option, value): """Set new config value. @@ -56,7 +54,6 @@ class ConfigApi(ApiComponent): return [ConfigInfo(section, config.name, config.description, False, False) for section, config, values in self.core.config.iterCoreSections()] - @UserContext @RequirePerm(Permission.Plugins) def getPluginConfig(self): """All plugins and addons the current user has configured @@ -75,7 +72,6 @@ class ConfigApi(ApiComponent): return data - @UserContext @RequirePerm(Permission.Plugins) def getAvailablePlugins(self): """List of all available plugins, that are configurable @@ -88,7 +84,6 @@ class ConfigApi(ApiComponent): self.core.pluginManager.isUserPlugin(name)) for name, config, values in self.core.config.iterSections(self.user)] - @UserContext @RequirePerm(Permission.Plugins) def configurePlugin(self, plugin): """Get complete config options for desired section @@ -99,7 +94,6 @@ class ConfigApi(ApiComponent): pass - @UserContext @RequirePerm(Permission.Plugins) def saveConfig(self, config): """Used to save a configuration, core config can only be saved by admins @@ -108,7 +102,6 @@ class ConfigApi(ApiComponent): """ pass - @UserContext @RequirePerm(Permission.Plugins) def deleteConfig(self, plugin): """Deletes modified config diff --git a/module/api/CoreApi.py b/module/api/CoreApi.py index 4de8c1f96..9338954d0 100644 --- a/module/api/CoreApi.py +++ b/module/api/CoreApi.py @@ -1,12 +1,13 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from module.Api import Api, RequirePerm, Permission, ServerStatus +from module.Api import Api, RequirePerm, Permission, ServerStatus, PackageStats from module.utils.fs import join, free_space from module.utils import compare_time from ApiComponent import ApiComponent + class CoreApi(ApiComponent): """ This module provides methods for general interaction with the core, like status or progress retrieval """ @@ -18,7 +19,8 @@ class CoreApi(ApiComponent): @RequirePerm(Permission.All) def getWSAddress(self): """Gets and address for the websocket based on configuration""" - # TODO + # TODO SSL (wss) + return "ws://%%s:%d" % self.core.config['remote']['port'] @RequirePerm(Permission.All) def getServerStatus(self): @@ -26,10 +28,17 @@ class CoreApi(ApiComponent): :return: `ServerStatus` """ - serverStatus = ServerStatus(self.core.files.getQueueCount(), self.core.files.getFileCount(), 0, - not self.core.threadManager.pause and self.isTimeDownload(), self.core.threadManager.pause, - self.core.config['reconnect']['activated'] and self.isTimeReconnect()) + queue = self.core.files.getQueueStats(self.primaryUID) + total = self.core.files.getDownloadStats(self.primaryUID) + + serverStatus = ServerStatus(0, + PackageStats(total[0], total[0] - queue[0], total[1], total[1] - queue[1]), + 0, + not self.core.threadManager.pause and self.isTimeDownload(), + self.core.threadManager.pause, + self.core.config['reconnect']['activated'] and self.isTimeReconnect()) + # TODO multi user for pyfile in self.core.threadManager.getActiveDownloads(): serverStatus.speed += pyfile.getSpeed() #bytes/s @@ -117,5 +126,6 @@ class CoreApi(ApiComponent): end = self.core.config['reconnect']['endTime'].split(":") return compare_time(start, end) and self.core.config["reconnect"]["activated"] + if Api.extend(CoreApi): del CoreApi
\ No newline at end of file diff --git a/module/api/FileApi.py b/module/api/FileApi.py index 8f09f3cb7..a5d5a8535 100644 --- a/module/api/FileApi.py +++ b/module/api/FileApi.py @@ -80,7 +80,7 @@ class FileApi(ApiComponent): @RequirePerm(Permission.All) def searchSuggestions(self, pattern): - names = self.core.db.getMatchingFilenames(pattern, self.userHandle) + names = self.core.db.getMatchingFilenames(pattern, self.primaryUID) # TODO: stemming and reducing the names to provide better suggestions return uniqify(names) |