diff options
author | Walter Purcaro <vuolter@users.noreply.github.com> | 2015-12-20 18:27:59 +0100 |
---|---|---|
committer | Walter Purcaro <vuolter@users.noreply.github.com> | 2015-12-27 22:44:11 +0100 |
commit | 0ea66514f25038303b2c73704bbad64ae558b952 (patch) | |
tree | 2ef79411b0e8fb0bd2ecec77f7ca6992a9fffbc1 /module/plugins/internal/Account.py | |
parent | [SimpleHoster] Auto-detect offline & temp. offline status and hashsum info by... (diff) | |
download | pyload-0ea66514f25038303b2c73704bbad64ae558b952.tar.xz |
[Account] Import new Periodical class
Diffstat (limited to 'module/plugins/internal/Account.py')
-rw-r--r-- | module/plugins/internal/Account.py | 54 |
1 files changed, 6 insertions, 48 deletions
diff --git a/module/plugins/internal/Account.py b/module/plugins/internal/Account.py index f2ab73653..4eddc1516 100644 --- a/module/plugins/internal/Account.py +++ b/module/plugins/internal/Account.py @@ -6,7 +6,7 @@ import threading import time from module.plugins.internal.Plugin import Plugin, Skip -from module.plugins.internal.misc import compare_time, isiterable, lock, parse_size, safe_format +from module.plugins.internal.misc import Periodical, compare_time, isiterable, lock, parse_size, safe_format class Account(Plugin): @@ -23,7 +23,7 @@ class Account(Plugin): LOGIN_TIMEOUT = 30 * 60 #: Relogin account every 30 minutes TUNE_TIMEOUT = True #: Automatically tune relogin interval - + def __init__(self, manager, accounts): self._init(manager.core) @@ -35,9 +35,9 @@ class Account(Plugin): self.timeout = self.LOGIN_TIMEOUT - #: Callback of periodical job task - self.cb = None - self.interval = None + #: Callback of periodical job task, used by HookManager + self.periodical = Periodical(self, self.periodical_task) + self.cb = self.periodical.cb #@TODO: Recheck in 0.4.10 self.init() @@ -71,49 +71,7 @@ class Account(Plugin): pass - def set_interval(self, value): - newinterval = max(0, value) - - if newinterval != value: - return False - - if newinterval != self.interval: - self.interval = newinterval - - return True - - - def start_periodical(self, interval=None, threaded=False, delay=0): - if interval is not None and self.set_interval(interval) is False: - return False - else: - self.cb = self.pyload.scheduler.addJob(max(1, delay), self._periodical, [threaded], threaded=threaded) - return True - - - def restart_periodical(self, *args, **kwargs): - self.stop_periodical() - return self.start_periodical(*args, **kwargs) - - - def stop_periodical(self): - try: - return self.pyload.scheduler.removeJob(self.cb) - finally: - self.cb = None - - - def _periodical(self, threaded): - try: - self.periodical() - - except Exception, e: - self.log_error(_("Error performing periodical task"), e) - - self.restart_periodical(threaded=threaded, delay=self.interval) - - - def periodical(self): + def periodical_task(self): raise NotImplementedError |