diff options
Diffstat (limited to 'pyload/plugins/Addon.py')
| -rw-r--r-- | pyload/plugins/Addon.py | 185 | 
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 | 
