summaryrefslogtreecommitdiffstats
path: root/pyload/api
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/api')
-rw-r--r--pyload/api/__init__.py106
-rw-r--r--pyload/api/types.py25
2 files changed, 78 insertions, 53 deletions
diff --git a/pyload/api/__init__.py b/pyload/api/__init__.py
index 461c77cac..62af70cf8 100644
--- a/pyload/api/__init__.py
+++ b/pyload/api/__init__.py
@@ -92,65 +92,65 @@ class Api(Iface):
def _convertPyFile(self, p):
- fdata = FileData(p["id"], p["url"], p["name"], p["plugin"], p["size"],
- p["format_size"], p["status"], p["statusmsg"],
- p["package"], p["error"], p["order"])
+ fdata = FileData(p['id'], p['url'], p['name'], p['plugin'], p['size'],
+ p['format_size'], p['status'], p['statusmsg'],
+ p['package'], p['error'], p['order'])
return fdata
def _convertConfigFormat(self, c):
sections = {}
for sectionName, sub in c.iteritems():
- section = ConfigSection(sectionName, sub["desc"])
+ section = ConfigSection(sectionName, sub['desc'])
items = []
for key, data in sub.iteritems():
if key in ("desc", "outline"):
continue
item = ConfigItem()
item.name = key
- item.description = data["desc"]
- item.value = str(data["value"]) if not isinstance(data["value"], basestring) else data["value"]
- item.type = data["type"]
+ item.description = data['desc']
+ item.value = str(data['value']) if not isinstance(data['value'], basestring) else data['value']
+ item.type = data['type']
items.append(item)
section.items = items
sections[sectionName] = section
if "outline" in sub:
- section.outline = sub["outline"]
+ section.outline = sub['outline']
return sections
@permission(PERMS.SETTINGS)
- def getConfigValue(self, category, option, section="core"):
+ def getConfigValue(self, section, option, section="core"):
"""Retrieve config value.
- :param category: name of category, or plugin
+ :param section: name of section, or plugin
:param option: config option
:param section: 'plugin' or 'core'
:return: config value as string
"""
if section == "core":
- value = self.core.config.get(category, option)
+ value = self.core.config.get(section, option)
else:
- value = self.core.config.getPlugin(category, option)
+ value = self.core.config.getPlugin(section, option)
return str(value)
@permission(PERMS.SETTINGS)
- def setConfigValue(self, category, option, value, section="core"):
+ def setConfigValue(self, section, option, value, section="core"):
"""Set new config value.
- :param category:
+ :param section:
:param option:
:param value: new config value
:param section: 'plugin' or 'core
"""
- self.core.addonManager.dispatchEvent("config-changed", category, option, value, section)
+ self.core.addonManager.dispatchEvent("config-changed", section, option, value, section)
if section == "core":
- self.core.config[category][option] = value
+ self.core.config.set(section, option, value)
if option in ("limit_speed", "max_speed"): # not so nice to update the limit
self.core.requestFactory.updateBucket()
elif section == "plugin":
- self.core.config.setPlugin(category, option, value)
+ self.core.config.setPlugin(section, option, value)
@permission(PERMS.SETTINGS)
@@ -424,7 +424,7 @@ class Api(Iface):
"""
result = self.core.threadManager.getInfoResult(rid)
if "ALL_INFO_FETCHED" in result:
- del result["ALL_INFO_FETCHED"]
+ del result['ALL_INFO_FETCHED']
return OnlineCheck(-1, result)
else:
return OnlineCheck(rid, result)
@@ -475,9 +475,9 @@ class Api(Iface):
data = self.core.files.getPackageData(int(pid))
if not data:
raise PackageDoesNotExists(pid)
- return PackageData(data["id"], data["name"], data["folder"], data["site"], data["password"],
- data["queue"], data["order"],
- links=[self._convertPyFile(x) for x in data["links"].itervalues()])
+ return PackageData(data['id'], data['name'], data['folder'], data['site'], data['password'],
+ data['queue'], data['order'],
+ links=[self._convertPyFile(x) for x in data['links'].itervalues()])
@permission(PERMS.LIST)
@@ -491,9 +491,9 @@ class Api(Iface):
if not data:
raise PackageDoesNotExists(pid)
- return PackageData(data["id"], data["name"], data["folder"], data["site"], data["password"],
- data["queue"], data["order"],
- fids=[int(x) for x in data["links"]])
+ return PackageData(data['id'], data['name'], data['folder'], data['site'], data['password'],
+ data['queue'], data['order'],
+ fids=[int(x) for x in data['links']])
@permission(PERMS.LIST)
@@ -538,10 +538,10 @@ class Api(Iface):
:return: list of `PackageInfo`
"""
- return [PackageData(pack["id"], pack["name"], pack["folder"], pack["site"],
- pack["password"], pack["queue"], pack["order"],
- pack["linksdone"], pack["sizedone"], pack["sizetotal"],
- pack["linkstotal"])
+ return [PackageData(pack['id'], pack['name'], pack['folder'], pack['site'],
+ pack['password'], pack['queue'], pack['order'],
+ pack['linksdone'], pack['sizedone'], pack['sizetotal'],
+ pack['linkstotal'])
for pack in self.core.files.getInfoData(Destination.Queue).itervalues()]
@@ -552,10 +552,10 @@ class Api(Iface):
:return: list of `PackageData`
"""
- return [PackageData(pack["id"], pack["name"], pack["folder"], pack["site"],
- pack["password"], pack["queue"], pack["order"],
- pack["linksdone"], pack["sizedone"], pack["sizetotal"],
- links=[self._convertPyFile(x) for x in pack["links"].itervalues()])
+ return [PackageData(pack['id'], pack['name'], pack['folder'], pack['site'],
+ pack['password'], pack['queue'], pack['order'],
+ pack['linksdone'], pack['sizedone'], pack['sizetotal'],
+ links=[self._convertPyFile(x) for x in pack['links'].itervalues()])
for pack in self.core.files.getCompleteData(Destination.Queue).itervalues()]
@@ -565,10 +565,10 @@ class Api(Iface):
:return: list of `PackageInfo`
"""
- return [PackageData(pack["id"], pack["name"], pack["folder"], pack["site"],
- pack["password"], pack["queue"], pack["order"],
- pack["linksdone"], pack["sizedone"], pack["sizetotal"],
- pack["linkstotal"])
+ return [PackageData(pack['id'], pack['name'], pack['folder'], pack['site'],
+ pack['password'], pack['queue'], pack['order'],
+ pack['linksdone'], pack['sizedone'], pack['sizetotal'],
+ pack['linkstotal'])
for pack in self.core.files.getInfoData(Destination.Collector).itervalues()]
@@ -578,10 +578,10 @@ class Api(Iface):
:return: list of `PackageInfo`
"""
- return [PackageData(pack["id"], pack["name"], pack["folder"], pack["site"],
- pack["password"], pack["queue"], pack["order"],
- pack["linksdone"], pack["sizedone"], pack["sizetotal"],
- links=[self._convertPyFile(x) for x in pack["links"].itervalues()])
+ return [PackageData(pack['id'], pack['name'], pack['folder'], pack['site'],
+ pack['password'], pack['queue'], pack['order'],
+ pack['linksdone'], pack['sizedone'], pack['sizetotal'],
+ links=[self._convertPyFile(x) for x in pack['links'].itervalues()])
for pack in self.core.files.getCompleteData(Destination.Collector).itervalues()]
@@ -777,9 +777,9 @@ class Api(Iface):
order = {}
for pid in packs:
pack = self.core.files.getPackageData(int(pid))
- while pack["order"] in order.keys(): # just in case
- pack["order"] += 1
- order[pack["order"]] = pack["id"]
+ while pack['order'] in order.keys(): # just in case
+ pack['order'] += 1
+ order[pack['order']] = pack['id']
return order
@@ -792,10 +792,10 @@ class Api(Iface):
"""
rawdata = self.core.files.getPackageData(int(pid))
order = {}
- for id, pyfile in rawdata["links"].iteritems():
- while pyfile["order"] in order.keys(): # just in case
- pyfile["order"] += 1
- order[pyfile["order"]] = pyfile["id"]
+ for id, pyfile in rawdata['links'].iteritems():
+ while pyfile['order'] in order.keys(): # just in case
+ pyfile['order'] += 1
+ order[pyfile['order']] = pyfile['id']
return order
@@ -894,8 +894,8 @@ class Api(Iface):
"""
accs = self.core.accountManager.getAccountInfos(False, refresh)
for group in accs.values():
- accounts = [AccountInfo(acc["validuntil"], acc["login"], acc["options"], acc["valid"],
- acc["trafficleft"], acc["maxtraffic"], acc["premium"], acc["type"])
+ accounts = [AccountInfo(acc['validuntil'], acc['login'], acc['options'], acc['valid'],
+ acc['trafficleft'], acc['maxtraffic'], acc['premium'], acc['type'])
for acc in group]
return accounts or []
@@ -958,9 +958,9 @@ class Api(Iface):
:param userdata: dictionary of user data
:return: boolean
"""
- if userdata == "local" or userdata["role"] == ROLE.ADMIN:
+ if userdata == "local" or userdata['role'] == ROLE.ADMIN:
return True
- elif func in permMap and has_permission(userdata["permission"], permMap[func]):
+ elif func in permMap and has_permission(userdata['permission'], permMap[func]):
return True
else:
return False
@@ -971,14 +971,14 @@ class Api(Iface):
"""similar to `checkAuth` but returns UserData thrift type """
user = self.checkAuth(username, password)
if user:
- return UserData(user["name"], user["email"], user["role"], user["permission"], user["template"])
+ return UserData(user['name'], user['email'], user['role'], user['permission'], user['template'])
else:
return UserData()
def getAllUserData(self):
"""returns all known user and info"""
- return dict((user, UserData(user, data["email"], data["role"], data["permission"], data["template"])) for user, data
+ return dict((user, UserData(user, data['email'], data['role'], data['permission'], data['template'])) for user, data
in self.core.db.getAllUserData().iteritems())
diff --git a/pyload/api/types.py b/pyload/api/types.py
index 10a64a813..2fd089333 100644
--- a/pyload/api/types.py
+++ b/pyload/api/types.py
@@ -2,13 +2,16 @@
# Autogenerated by pyload
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+
class BaseObject(object):
__slots__ = []
+
class Destination(object):
Collector = 0
Queue = 1
+
class DownloadStatus(object):
Aborted = 9
Custom = 11
@@ -26,10 +29,12 @@ class DownloadStatus(object):
Unknown = 14
Waiting = 5
+
class ElementType(object):
File = 1
Package = 0
+
class Input(object):
BOOL = 4
CHOICE = 6
@@ -42,11 +47,13 @@ class Input(object):
TEXT = 1
TEXTBOX = 2
+
class Output(object):
CAPTCHA = 1
NOTIFICATION = 4
QUESTION = 2
+
class AccountInfo(BaseObject):
__slots__ = ['validuntil', 'login', 'options', 'valid', 'trafficleft', 'maxtraffic', 'premium', 'type']
@@ -61,6 +68,7 @@ class AccountInfo(BaseObject):
self.premium = premium
self.type = type
+
class CaptchaTask(BaseObject):
__slots__ = ['tid', 'data', 'type', 'resultType']
@@ -71,6 +79,7 @@ class CaptchaTask(BaseObject):
self.type = type
self.resultType = resultType
+
class ConfigItem(BaseObject):
__slots__ = ['name', 'description', 'value', 'type']
@@ -81,6 +90,7 @@ class ConfigItem(BaseObject):
self.value = value
self.type = type
+
class ConfigSection(BaseObject):
__slots__ = ['name', 'description', 'items', 'outline']
@@ -91,6 +101,7 @@ class ConfigSection(BaseObject):
self.items = items
self.outline = outline
+
class DownloadInfo(BaseObject):
__slots__ = ['fid', 'name', 'speed', 'eta', 'format_eta', 'bleft', 'size', 'format_size', 'percent', 'status', 'statusmsg', 'format_wait', 'wait_until', 'packageID', 'packageName', 'plugin']
@@ -113,6 +124,7 @@ class DownloadInfo(BaseObject):
self.packageName = packageName
self.plugin = plugin
+
class EventInfo(BaseObject):
__slots__ = ['eventname', 'id', 'type', 'destination']
@@ -123,6 +135,7 @@ class EventInfo(BaseObject):
self.type = type
self.destination = destination
+
class FileData(BaseObject):
__slots__ = ['fid', 'url', 'name', 'plugin', 'size', 'format_size', 'status', 'statusmsg', 'packageID', 'error', 'order']
@@ -140,6 +153,7 @@ class FileData(BaseObject):
self.error = error
self.order = order
+
class FileDoesNotExists(Exception):
__slots__ = ['fid']
@@ -147,6 +161,7 @@ class FileDoesNotExists(Exception):
def __init__(self, fid=None):
self.fid = fid
+
class InteractionTask(BaseObject):
__slots__ = ['iid', 'input', 'structure', 'preset', 'output', 'data', 'title', 'description', 'plugin']
@@ -162,6 +177,7 @@ class InteractionTask(BaseObject):
self.description = description
self.plugin = plugin
+
class OnlineCheck(BaseObject):
__slots__ = ['rid', 'data']
@@ -170,6 +186,7 @@ class OnlineCheck(BaseObject):
self.rid = rid
self.data = data
+
class OnlineStatus(BaseObject):
__slots__ = ['name', 'plugin', 'packagename', 'status', 'size']
@@ -181,6 +198,7 @@ class OnlineStatus(BaseObject):
self.status = status
self.size = size
+
class PackageData(BaseObject):
__slots__ = ['pid', 'name', 'folder', 'site', 'password', 'dest', 'order', 'linksdone', 'sizedone', 'sizetotal', 'linkstotal', 'links', 'fids']
@@ -200,6 +218,7 @@ class PackageData(BaseObject):
self.links = links
self.fids = fids
+
class PackageDoesNotExists(Exception):
__slots__ = ['pid']
@@ -207,6 +226,7 @@ class PackageDoesNotExists(Exception):
def __init__(self, pid=None):
self.pid = pid
+
class ServerStatus(BaseObject):
__slots__ = ['pause', 'active', 'queue', 'total', 'speed', 'download', 'reconnect']
@@ -220,6 +240,7 @@ class ServerStatus(BaseObject):
self.download = download
self.reconnect = reconnect
+
class ServiceCall(BaseObject):
__slots__ = ['plugin', 'func', 'arguments', 'parseArguments']
@@ -230,6 +251,7 @@ class ServiceCall(BaseObject):
self.arguments = arguments
self.parseArguments = parseArguments
+
class ServiceDoesNotExists(Exception):
__slots__ = ['plugin', 'func']
@@ -238,6 +260,7 @@ class ServiceDoesNotExists(Exception):
self.plugin = plugin
self.func = func
+
class ServiceException(Exception):
__slots__ = ['msg']
@@ -245,6 +268,7 @@ class ServiceException(Exception):
def __init__(self, msg=None):
self.msg = msg
+
class UserData(BaseObject):
__slots__ = ['name', 'email', 'role', 'permission', 'templateName']
@@ -256,6 +280,7 @@ class UserData(BaseObject):
self.permission = permission
self.templateName = templateName
+
class Iface(object):
def addFiles(self, pid, links):