summaryrefslogtreecommitdiffstats
path: root/module/plugins/Hook.py
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@gmail.com> 2014-11-22 19:38:25 +0100
committerGravatar Walter Purcaro <vuolter@gmail.com> 2014-11-22 19:38:25 +0100
commitef4bc4b73756565e40c7453f6b71bc1021735033 (patch)
treede307e0b2d9efd496f942b09d6be6dc4a7dc4850 /module/plugins/Hook.py
parent[SimpleHoster] Fix statusMap generator for python 2.5 (diff)
downloadpyload-ef4bc4b73756565e40c7453f6b71bc1021735033.tar.xz
Revert plugins to stable
Diffstat (limited to 'module/plugins/Hook.py')
-rw-r--r--module/plugins/Hook.py87
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