From 69e59eca82a72c7a6ab06d92bfc7d1209e5ab1d4 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 15 Sep 2013 23:21:18 +0200 Subject: startPeriodical + setInterval methods --- pyload/plugins/Addon.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'pyload/plugins/Addon.py') diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py index 85ae20e09..30442423d 100644 --- a/pyload/plugins/Addon.py +++ b/pyload/plugins/Addon.py @@ -104,21 +104,33 @@ class Addon(Base): #delete for various reasons self.event_map = None - #self.initPeriodical() + #self.startPeriodical() self.init() + def startPeriodical(self, interval=self.interval, wait=0): + if self.cb or not self.setInterval(interval): + return False + else: + self.cb = self.core.scheduler.addJob(wait, self._periodical, threaded=False) + return interval + def stopPeriodical(self): if not self.cb: - return + return False r = self.core.scheduler.removeJob(self.cb) - self.cb = None + if r: + self.cb = None return r #: return True if successfully removed else False - def initPeriodical(self, wait=0): - if self.interval > 0: - self.cb = self.core.scheduler.addJob(wait, self._periodical, threaded=False) + def setInterval(self, interval, reset=False): + if interval > 0: + if reset: + return self.stopPeriodical() and self.startPeriodical(interval) + else: + self.interval = interval + return True else: - self.stopPeriodical() + return False def _periodical(self): try: -- cgit v1.2.3