summaryrefslogtreecommitdiffstats
path: root/pyload/plugins/Addon.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/plugins/Addon.py')
-rw-r--r--pyload/plugins/Addon.py185
1 files changed, 0 insertions, 185 deletions
diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py
deleted file mode 100644
index 1c3049c10..000000000
--- a/pyload/plugins/Addon.py
+++ /dev/null
@@ -1,185 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from traceback import print_exc
-
-from pyload.plugins.Plugin import Base
-from pyload.utils import has_method
-
-
-class Expose(object):
- """ used for decoration to declare rpc services """
-
- def __new__(cls, f, *args, **kwargs):
- addonManager.addRPC(f.__module__, f.func_name, f.func_doc)
- return f
-
-
-def threaded(fn):
-
- def run(*args,**kwargs):
- addonManager.startThread(fn, *args, **kwargs)
-
- return run
-
-
-class Addon(Base):
- """
- Base class for addon plugins.
- """
- __name = "Addon"
- __type = "addon"
- __version = "0.03"
-
- __config = [] #: [("name", "type", "desc", "default")]
-
- __description = """Base addon/hook plugin"""
- __license = "GPLv3"
- __authors = [("mkaay", "mkaay@mkaay.de"),
- ("RaNaN", "RaNaN@pyload.org")]
-
-
- #: automatically register event listeners for functions, attribute will be deleted dont use it yourself
- event_map = {}
-
- # Deprecated alternative to event_map
- #: List of events the plugin can handle, name the functions exactly like eventname.
- event_list = [] #@NOTE: dont make duplicate entries in event_map
-
-
- def __init__(self, core, manager):
- Base.__init__(self, core)
-
- #: Provide information in dict here, usable by API `getInfo`
- self.info = {}
-
- #: Callback of periodical job task, used by AddonManager
- self.cb = None
- self.interval = 60
-
- #: `AddonManager`
- self.manager = manager
-
- #register events
- if self.event_map:
- for event, funcs in self.event_map.iteritems():
- if type(funcs) in (list, tuple):
- for f in funcs:
- self.manager.addEvent(event, getattr(self,f))
- else:
- self.manager.addEvent(event, getattr(self,funcs))
-
- #delete for various reasons
- self.event_map = None
-
- if self.event_list:
- for f in self.event_list:
- self.manager.addEvent(f, getattr(self,f))
-
- self.event_list = None
-
- self.setup()
-
- # self.initPeriodical()
-
-
- def initPeriodical(self, delay=0, threaded=False):
- self.cb = self.core.scheduler.addJob(delay, self._periodical, args=[threaded], threaded=threaded)
-
-
- def _periodical(self, threaded):
- if self.interval < 0:
- self.cb = None
- return
-
- try:
- self.periodical()
-
- except Exception, e:
- self.logError(_("Error executing addon: %s") % e)
- if self.core.debug:
- print_exc()
-
- self.cb = self.core.scheduler.addJob(self.interval, self._periodical, threaded=threaded)
-
-
- def __repr__(self):
- return "<Addon %s>" % self.__name
-
-
- def setup(self):
- """ more init stuff if needed """
- pass
-
-
- def deactivate(self):
- """ called when addon was deactivated """
- if has_method(self.__class__, "unload"):
- self.unload()
-
- def unload(self): # Deprecated, use method deactivate() instead
- pass
-
-
- def isActivated(self):
- """ checks if addon is activated"""
- return self.core.config.getPlugin(self.__name, "activated")
-
-
- # Event methods - overwrite these if needed
- def activate(self):
- """ called when addon was activated """
- if has_method(self.__class__, "coreReady"):
- self.coreReady()
-
- def coreReady(self): # Deprecated, use method activate() instead
- pass
-
-
- def exit(self):
- """ called by core.shutdown just before pyLoad exit """
- if has_method(self.__class__, "coreExiting"):
- self.coreExiting()
-
- def coreExiting(self): # Deprecated, use method exit() instead
- 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 captchaTask(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