summaryrefslogtreecommitdiffstats
path: root/pyload/api
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-04-13 17:34:59 +0200
committerGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-04-13 17:34:59 +0200
commit2db634796bd5426c11f7849ce480265091f128c8 (patch)
tree5a54f7535e9c0ff1ec65f05f347b6eafbb496922 /pyload/api
parentCleanup (diff)
downloadpyload-2db634796bd5426c11f7849ce480265091f128c8.tar.xz
Cleanup (2)
Diffstat (limited to 'pyload/api')
-rw-r--r--pyload/api/__init__.py202
1 files changed, 66 insertions, 136 deletions
diff --git a/pyload/api/__init__.py b/pyload/api/__init__.py
index 0b63995a3..8c114cea4 100644
--- a/pyload/api/__init__.py
+++ b/pyload/api/__init__.py
@@ -118,9 +118,8 @@ class Api(Iface):
section.outline = sub["outline"]
return sections
- @permission(PERMS.SETTINGS)
-
+ @permission(PERMS.SETTINGS)
def getConfigValue(self, category, option, section="core"):
"""Retrieve config value.
@@ -135,9 +134,8 @@ class Api(Iface):
value = self.core.config.getPlugin(category, option)
return str(value)
- @permission(PERMS.SETTINGS)
-
+ @permission(PERMS.SETTINGS)
def setConfigValue(self, category, option, value, section="core"):
"""Set new config value.
@@ -154,9 +152,8 @@ class Api(Iface):
elif section == "plugin":
self.core.config.setPlugin(category, option, value)
- @permission(PERMS.SETTINGS)
-
+ @permission(PERMS.SETTINGS)
def getConfig(self):
"""Retrieves complete config of core.
@@ -172,9 +169,8 @@ class Api(Iface):
"""
return self.core.config.config
- @permission(PERMS.SETTINGS)
-
+ @permission(PERMS.SETTINGS)
def getPluginConfig(self):
"""Retrieves complete config for all plugins.
@@ -190,23 +186,20 @@ class Api(Iface):
"""
return self.core.config.plugin
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def pauseServer(self):
"""Pause server: Tt wont start any new downloads, but nothing gets aborted."""
self.core.threadManager.pause = True
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def unpauseServer(self):
"""Unpause server: New Downloads will be started."""
self.core.threadManager.pause = False
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def togglePause(self):
"""Toggle pause state.
@@ -215,9 +208,8 @@ class Api(Iface):
self.core.threadManager.pause ^= True
return self.core.threadManager.pause
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def toggleReconnect(self):
"""Toggle reconnect activation.
@@ -226,9 +218,8 @@ class Api(Iface):
self.core.config["reconnect"]["activated"] ^= True
return self.core.config["reconnect"]["activated"]
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def statusServer(self):
"""Some general information about the current status of pyLoad.
@@ -242,16 +233,14 @@ class Api(Iface):
serverStatus.speed += pyfile.getSpeed() # bytes/s
return serverStatus
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def freeSpace(self):
"""Available free space at download directory in bytes"""
return freeSpace(self.core.config["general"]["download_folder"])
- @permission(PERMS.ALL)
-
+ @permission(PERMS.ALL)
def getServerVersion(self):
"""pyLoad Core version """
return self.core.version
@@ -266,9 +255,8 @@ class Api(Iface):
"""Restart pyload core"""
self.core.do_restart = True
- @permission(PERMS.LOGS)
-
+ @permission(PERMS.LOGS)
def getLog(self, offset=0):
"""Returns most recent log entries.
@@ -286,9 +274,8 @@ class Api(Iface):
except Exception:
return ['No log available']
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def isTimeDownload(self):
"""Checks if pyload will start new downloads according to time in config.
@@ -298,9 +285,8 @@ class Api(Iface):
end = self.core.config['downloadTime']['end'].split(":")
return compare_time(start, end)
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def isTimeReconnect(self):
"""Checks if pyload will try to make a reconnect
@@ -310,9 +296,8 @@ class Api(Iface):
end = self.core.config['reconnect']['endTime'].split(":")
return compare_time(start, end) and self.core.config["reconnect"]["activated"]
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def statusDownloads(self):
""" Status off all currently running downloads.
@@ -329,9 +314,8 @@ class Api(Iface):
pyfile.waitUntil, pyfile.packageid, pyfile.package().name, pyfile.pluginname))
return data
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def addPackage(self, name, links, dest=Destination.Queue):
"""Adds a package, with links to desired destination.
@@ -357,9 +341,8 @@ class Api(Iface):
return pid
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def parseURLs(self, html=None, url=None):
"""Parses html content or any arbitaty text for links and returns result of `checkURLs`
@@ -375,9 +358,8 @@ class Api(Iface):
# remove duplicates
return self.checkURLs(set(urls))
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def checkURLs(self, urls):
""" Gets urls and returns pluginname mapped to list of matches urls.
@@ -395,9 +377,8 @@ class Api(Iface):
return plugins
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def checkOnlineStatus(self, urls):
""" initiates online status check
@@ -418,9 +399,8 @@ class Api(Iface):
return OnlineCheck(rid, result)
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def checkOnlineStatusContainer(self, urls, container, data):
""" checks online status of urls and a submited container file
@@ -434,9 +414,8 @@ class Api(Iface):
th.close()
return self.checkOnlineStatus(urls + [th.name])
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def pollResults(self, rid):
""" Polls the result available for ResultID
@@ -450,9 +429,8 @@ class Api(Iface):
else:
return OnlineCheck(rid, result)
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def generatePackages(self, links):
""" Parses links, generates packages names from urls
@@ -461,9 +439,8 @@ class Api(Iface):
"""
return parseNames((x, x) for x in links)
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def generateAndAddPackages(self, links, dest=Destination.Queue):
"""Generates and add packages
@@ -474,9 +451,8 @@ class Api(Iface):
return [self.addPackage(name, urls, dest) for name, urls
in self.generatePackages(links).iteritems()]
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def checkAndAddPackages(self, links, dest=Destination.Queue):
"""Checks online status, retrieves names, and will add packages.\
Because of this packages are not added immediatly, only for internal use.
@@ -488,9 +464,8 @@ class Api(Iface):
data = self.core.pluginManager.parseUrls(links)
self.core.threadManager.createResultThread(data, True)
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getPackageData(self, pid):
"""Returns complete information about package, and included files.
@@ -504,9 +479,8 @@ class Api(Iface):
data["queue"], data["order"],
links=[self._convertPyFile(x) for x in data["links"].itervalues()])
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getPackageInfo(self, pid):
"""Returns information about package, without detailed information about containing files
@@ -521,9 +495,8 @@ class Api(Iface):
data["queue"], data["order"],
fids=[int(x) for x in data["links"]])
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getFileData(self, fid):
"""Get complete information about a specific file.
@@ -535,9 +508,8 @@ class Api(Iface):
raise FileDoesNotExists(fid)
return self._convertPyFile(info.values()[0])
- @permission(PERMS.DELETE)
-
+ @permission(PERMS.DELETE)
def deleteFiles(self, fids):
"""Deletes several file entries from pyload.
@@ -547,9 +519,8 @@ class Api(Iface):
self.core.files.deleteLink(int(fid))
self.core.files.save()
- @permission(PERMS.DELETE)
-
+ @permission(PERMS.DELETE)
def deletePackages(self, pids):
"""Deletes packages and containing links.
@@ -559,9 +530,8 @@ class Api(Iface):
self.core.files.deletePackage(int(pid))
self.core.files.save()
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getQueue(self):
"""Returns info about queue and packages, **not** about files, see `getQueueData` \
or `getPackageData` instead.
@@ -574,9 +544,8 @@ class Api(Iface):
pack["linkstotal"])
for pack in self.core.files.getInfoData(Destination.Queue).itervalues()]
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getQueueData(self):
"""Return complete data about everything in queue, this is very expensive use it sparely.\
See `getQueue` for alternative.
@@ -589,9 +558,8 @@ class Api(Iface):
links=[self._convertPyFile(x) for x in pack["links"].itervalues()])
for pack in self.core.files.getCompleteData(Destination.Queue).itervalues()]
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getCollector(self):
"""same as `getQueue` for collector.
@@ -603,9 +571,8 @@ class Api(Iface):
pack["linkstotal"])
for pack in self.core.files.getInfoData(Destination.Collector).itervalues()]
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getCollectorData(self):
"""same as `getQueueData` for collector.
@@ -617,9 +584,8 @@ class Api(Iface):
links=[self._convertPyFile(x) for x in pack["links"].itervalues()])
for pack in self.core.files.getCompleteData(Destination.Collector).itervalues()]
- @permission(PERMS.ADD)
-
+ @permission(PERMS.ADD)
def addFiles(self, pid, links):
"""Adds files to specific package.
@@ -630,9 +596,8 @@ class Api(Iface):
self.core.log.info(_("Added %(count)d links to package #%(package)d ") % {"count": len(links), "package": pid})
self.core.files.save()
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def pushToQueue(self, pid):
"""Moves package from Collector to Queue.
@@ -640,9 +605,8 @@ class Api(Iface):
"""
self.core.files.setPackageLocation(pid, Destination.Queue)
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def pullFromQueue(self, pid):
"""Moves package from Queue to Collector.
@@ -650,9 +614,8 @@ class Api(Iface):
"""
self.core.files.setPackageLocation(pid, Destination.Collector)
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def restartPackage(self, pid):
"""Restarts a package, resets every containing files.
@@ -660,9 +623,8 @@ class Api(Iface):
"""
self.core.files.restartPackage(int(pid))
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def restartFile(self, fid):
"""Resets file status, so it will be downloaded again.
@@ -670,9 +632,8 @@ class Api(Iface):
"""
self.core.files.restartFile(int(fid))
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def recheckPackage(self, pid):
"""Proofes online status of all files in a package, also a default action when package is added.
@@ -681,9 +642,8 @@ class Api(Iface):
"""
self.core.files.reCheckPackage(int(pid))
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def stopAllDownloads(self):
"""Aborts all running downloads."""
@@ -691,9 +651,8 @@ class Api(Iface):
for pyfile in pyfiles:
pyfile.abortDownload()
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def stopDownloads(self, fids):
"""Aborts specific downloads.
@@ -705,9 +664,8 @@ class Api(Iface):
if pyfile.id in fids:
pyfile.abortDownload()
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def setPackageName(self, pid, name):
"""Renames a package.
@@ -718,9 +676,8 @@ class Api(Iface):
pack.name = name
pack.sync()
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def movePackage(self, destination, pid):
"""Set a new package location.
@@ -730,9 +687,8 @@ class Api(Iface):
if destination in (0, 1):
self.core.files.setPackageLocation(pid, destination)
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def moveFiles(self, fids, pid):
"""Move multiple files to another package
@@ -745,8 +701,6 @@ class Api(Iface):
@permission(PERMS.ADD)
-
-
def uploadContainer(self, filename, data):
"""Uploads and adds a container file to pyLoad.
@@ -758,9 +712,8 @@ class Api(Iface):
th.close()
self.addPackage(th.name, [th.name], Destination.Queue)
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def orderPackage(self, pid, position):
"""Gives a package a new position.
@@ -769,9 +722,8 @@ class Api(Iface):
"""
self.core.files.reorderPackage(pid, position)
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def orderFile(self, fid, position):
"""Gives a new position to a file within its package.
@@ -780,9 +732,8 @@ class Api(Iface):
"""
self.core.files.reorderFile(fid, position)
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def setPackageData(self, pid, data):
"""Allows to modify several package attributes.
@@ -799,9 +750,8 @@ class Api(Iface):
package.sync()
self.core.files.save()
- @permission(PERMS.DELETE)
-
+ @permission(PERMS.DELETE)
def deleteFinished(self):
"""Deletes all finished files and completly finished packages.
@@ -809,16 +759,14 @@ class Api(Iface):
"""
return self.core.files.deleteFinishedLinks()
- @permission(PERMS.MODIFY)
-
+ @permission(PERMS.MODIFY)
def restartFailed(self):
"""Restarts all failed failes."""
self.core.files.restartFailed()
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getPackageOrder(self, destination):
"""Returns information about package order.
@@ -834,9 +782,8 @@ class Api(Iface):
order[pack["order"]] = pack["id"]
return order
- @permission(PERMS.LIST)
-
+ @permission(PERMS.LIST)
def getFileOrder(self, pid):
"""Information about file order within package.
@@ -853,8 +800,6 @@ class Api(Iface):
@permission(PERMS.STATUS)
-
-
def isCaptchaWaiting(self):
"""Indicates wether a captcha task is available
@@ -864,9 +809,8 @@ class Api(Iface):
task = self.core.captchaManager.getTask()
return not task is None
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def getCaptchaTask(self, exclusive=False):
"""Returns a captcha task
@@ -882,9 +826,8 @@ class Api(Iface):
return ctask
return CaptchaTask(-1)
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def getCaptchaTaskStatus(self, tid):
"""Get information about captcha task
@@ -895,9 +838,8 @@ class Api(Iface):
task = self.core.captchaManager.getTaskByID(tid)
return task.getStatus() if task else ""
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def setCaptchaResult(self, tid, result):
"""Set result for a captcha task
@@ -910,9 +852,8 @@ class Api(Iface):
task.setResult(result)
self.core.captchaManager.removeTask(task)
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def getEvents(self, uuid):
"""Lists occured events, may be affected to changes in future.
@@ -943,9 +884,8 @@ class Api(Iface):
new_events.append(event)
return new_events
- @permission(PERMS.ACCOUNTS)
-
+ @permission(PERMS.ACCOUNTS)
def getAccounts(self, refresh):
"""Get information about all entered accounts.
@@ -959,9 +899,8 @@ class Api(Iface):
for acc in group]
return accounts or []
- @permission(PERMS.ALL)
-
+ @permission(PERMS.ALL)
def getAccountTypes(self):
"""All available account types.
@@ -969,16 +908,14 @@ class Api(Iface):
"""
return self.core.accountManager.accounts.keys()
- @permission(PERMS.ACCOUNTS)
-
+ @permission(PERMS.ACCOUNTS)
def updateAccount(self, plugin, account, password=None, options=None):
"""Changes pw/options for specific account."""
self.core.accountManager.updateAccount(plugin, account, password, options or {})
- @permission(PERMS.ACCOUNTS)
-
+ @permission(PERMS.ACCOUNTS)
def removeAccount(self, plugin, account):
"""Remove account from pyload.
@@ -987,9 +924,8 @@ class Api(Iface):
"""
self.core.accountManager.removeAccount(plugin, account)
- @permission(PERMS.ALL)
-
+ @permission(PERMS.ALL)
def login(self, username, password, remoteip=None):
"""Login into pyLoad, this **must** be called when using rpc before any methods can be used.
@@ -1029,9 +965,8 @@ class Api(Iface):
else:
return False
- @permission(PERMS.ALL)
-
+ @permission(PERMS.ALL)
def getUserData(self, username, password):
"""similar to `checkAuth` but returns UserData thrift type """
user = self.checkAuth(username, password)
@@ -1046,9 +981,8 @@ class Api(Iface):
return dict((user, UserData(user, data["email"], data["role"], data["permission"], data["template"])) for user, data
in self.core.db.getAllUserData().iteritems())
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def getServices(self):
""" A dict of available services, these can be defined by addon plugins.
@@ -1056,9 +990,8 @@ class Api(Iface):
"""
return dict((plugin, funcs) for plugin, funcs in self.core.addonManager.methods.iteritems())
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def hasService(self, plugin, func):
"""Checks wether a service is available.
@@ -1069,9 +1002,8 @@ class Api(Iface):
cont = self.core.addonManager.methods
return plugin in cont and func in cont[plugin]
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def call(self, info):
"""Calls a service (a method in addon plugin).
@@ -1091,9 +1023,8 @@ class Api(Iface):
except Exception, e:
raise ServiceException(e.message)
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def getAllInfo(self):
"""Returns all information stored by addon plugins. Values are always strings
@@ -1101,9 +1032,8 @@ class Api(Iface):
"""
return self.core.addonManager.getAllInfo()
- @permission(PERMS.STATUS)
-
+ @permission(PERMS.STATUS)
def getInfoByPlugin(self, plugin):
"""Returns information stored by a specific plugin.