diff options
author | Walter Purcaro <vuolter@gmail.com> | 2014-11-22 19:38:25 +0100 |
---|---|---|
committer | Walter Purcaro <vuolter@gmail.com> | 2014-11-22 19:38:25 +0100 |
commit | ef4bc4b73756565e40c7453f6b71bc1021735033 (patch) | |
tree | de307e0b2d9efd496f942b09d6be6dc4a7dc4850 /module/plugins/Hook.py | |
parent | [SimpleHoster] Fix statusMap generator for python 2.5 (diff) | |
download | pyload-ef4bc4b73756565e40c7453f6b71bc1021735033.tar.xz |
Revert plugins to stable
Diffstat (limited to 'module/plugins/Hook.py')
-rw-r--r-- | module/plugins/Hook.py | 87 |
1 files changed, 41 insertions, 46 deletions
diff --git a/module/plugins/Hook.py b/module/plugins/Hook.py index 424417752..5efd08bae 100644 --- a/module/plugins/Hook.py +++ b/module/plugins/Hook.py @@ -1,9 +1,26 @@ # -*- coding: utf-8 -*- -from traceback import print_exc +""" + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, + or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see <http://www.gnu.org/licenses/>. + + @author: mkaay + @interface-version: 0.2 +""" -from module.plugins.Plugin import Base +from traceback import print_exc +from Plugin import Base class Expose(object): """ used for decoration to declare rpc services """ @@ -12,29 +29,23 @@ class Expose(object): hookManager.addRPC(f.__module__, f.func_name, f.func_doc) return f - def threaded(f): - def run(*args,**kwargs): hookManager.startThread(f, *args, **kwargs) return run - class Hook(Base): """ Base class for hook plugins. """ - __name__ = "Hook" - __type__ = "hook" - __version__ = "0.03" - - __config__ = [] #: [("name", "type", "desc", "default")] - - __description__ = """Interface for hook""" - __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de"), - ("RaNaN", "RaNaN@pyload.org")] - + __name__ = "Hook" + __version__ = "0.2" + __type__ = "hook" + __threaded__ = [] + __config__ = [ ("name", "type", "desc" , "default") ] + __description__ = """interface for hook""" + __author_name__ = ("mkaay", "RaNaN") + __author_mail__ = ("mkaay@mkaay.de", "RaNaN@pyload.org") #: automatically register event listeners for functions, attribute will be deleted dont use it yourself event_map = None @@ -43,15 +54,15 @@ class Hook(Base): #: List of events the plugin can handle, name the functions exactly like eventname. event_list = None # dont make duplicate entries in event_map + #: periodic call interval in secondc interval = 60 - def __init__(self, core, manager): Base.__init__(self, core) #: Provide information in dict here, usable by API `getInfo` - self.info = {} + self.info = None #: Callback of periodical job task, used by hookmanager self.cb = None @@ -80,17 +91,15 @@ class Hook(Base): self.initPeriodical() self.setup() - def initPeriodical(self): if self.interval >=1: self.cb = self.core.scheduler.addJob(0, self._periodical, threaded=False) - def _periodical(self): try: if self.isActivated(): self.periodical() except Exception, e: - self.core.log.error(_("Error executing hooks: ") + str(e)) + self.core.log.error(_("Error executing hooks: %s") % str(e)) if self.core.debug: print_exc() @@ -99,68 +108,54 @@ class Hook(Base): def __repr__(self): return "<Hook %s>" % self.__name__ - - + def setup(self): """ more init stuff if needed """ pass - def unload(self): """ called when hook was deactivated """ pass - - + def isActivated(self): """ checks if hook is activated""" return self.config.getPlugin(self.__name__, "activated") + - - #event methods - overwrite these if needed + #event methods - overwrite these if needed def coreReady(self): pass - def coreExiting(self): pass - - + def downloadPreparing(self, pyfile): pass - - + def downloadFinished(self, pyfile): pass - - + def downloadFailed(self, pyfile): pass - - + def packageFinished(self, pypack): pass - def beforeReconnecting(self, ip): pass - - + def afterReconnecting(self, ip): pass - - + def periodical(self): pass - def newCaptchaTask(self, task): """ new captcha task for the plugin, it MUST set the handler and timeout or will be ignored """ pass - def captchaCorrect(self, task): pass - def captchaInvalid(self, task): - pass + pass
\ No newline at end of file |