From b565853e311eb480212f0743ac6d8e0914a09a9c Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Fri, 2 Aug 2013 17:16:29 +0200 Subject: Improved addon periodic call --- pyload/plugins/Addon.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'pyload/plugins') diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py index ee8cbe62c..50a38960a 100644 --- a/pyload/plugins/Addon.py +++ b/pyload/plugins/Addon.py @@ -78,7 +78,7 @@ class Addon(Base): event_map = None #: periodic call interval in seconds - interval = 60 + interval = 30 def __init__(self, core, manager, user=None): Base.__init__(self, core, user) @@ -104,12 +104,21 @@ class Addon(Base): #delete for various reasons self.event_map = None - self.initPeriodical() + #self.initPeriodical() self.init() - def initPeriodical(self): - if self.interval >=1: - self.cb = self.core.scheduler.addJob(0, self._periodical, threaded=False) + def stopPeriodical(self): + if not self.cb: + return + r = self.core.scheduler.removeJob(self.cb) + 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) + else: + self.stopPeriodical() def _periodical(self): try: @@ -119,7 +128,8 @@ class Addon(Base): if self.core.debug: print_exc() - self.cb = self.core.scheduler.addJob(self.interval, self._periodical, threaded=False) + if self.cb: + self.cb = self.core.scheduler.addJob(self.interval, self._periodical, threaded=False) def __repr__(self): return "" % self.__name__ -- cgit v1.2.3 From f6d63322cc2d72fbae4a3ada35dab5b941b6e288 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Fri, 2 Aug 2013 17:25:20 +0200 Subject: typo --- pyload/plugins/Addon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pyload/plugins') diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py index 50a38960a..85ae20e09 100644 --- a/pyload/plugins/Addon.py +++ b/pyload/plugins/Addon.py @@ -78,7 +78,7 @@ class Addon(Base): event_map = None #: periodic call interval in seconds - interval = 30 + interval = 60 def __init__(self, core, manager, user=None): Base.__init__(self, core, user) -- cgit v1.2.3 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') 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 From 5beae3eac479c20f147cb36972f10959942e38ae Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 15 Sep 2013 23:25:52 +0200 Subject: typo --- pyload/plugins/Addon.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'pyload/plugins') diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py index 30442423d..60243a8bd 100644 --- a/pyload/plugins/Addon.py +++ b/pyload/plugins/Addon.py @@ -108,11 +108,11 @@ class Addon(Base): self.init() def startPeriodical(self, interval=self.interval, wait=0): - if self.cb or not self.setInterval(interval): - return False - else: + if not self.cb and self.setInterval(interval): self.cb = self.core.scheduler.addJob(wait, self._periodical, threaded=False) return interval + else: + return False def stopPeriodical(self): if not self.cb: -- cgit v1.2.3 From a38b282781c1453cc89682ab8c1cff0ecf6704ce Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Tue, 17 Sep 2013 22:24:41 +0200 Subject: Improved start and stop methods --- pyload/plugins/Addon.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'pyload/plugins') diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py index 60243a8bd..be317eb0d 100644 --- a/pyload/plugins/Addon.py +++ b/pyload/plugins/Addon.py @@ -107,20 +107,18 @@ class Addon(Base): #self.startPeriodical() self.init() - def startPeriodical(self, interval=self.interval, wait=0): - if not self.cb and self.setInterval(interval): + def startPeriodical(self, interval=self.interval, wait=self.interval): + if not self.cb and self.setInterval(interval, False): self.cb = self.core.scheduler.addJob(wait, self._periodical, threaded=False) return interval else: return False def stopPeriodical(self): - if not self.cb: - return False - r = self.core.scheduler.removeJob(self.cb) - if r: + if self.cb and self.core.scheduler.removeJob(self.cb): self.cb = None - return r #: return True if successfully removed else False + return True + return False def setInterval(self, interval, reset=False): if interval > 0: -- cgit v1.2.3 From b1a7f7c6beaaf80781d2cc791439a3ec3210174a Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Tue, 17 Sep 2013 23:13:34 +0200 Subject: Renamed setInterval reset opt to recount --- pyload/plugins/Addon.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pyload/plugins') diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py index be317eb0d..69280ca7e 100644 --- a/pyload/plugins/Addon.py +++ b/pyload/plugins/Addon.py @@ -120,9 +120,9 @@ class Addon(Base): return True return False - def setInterval(self, interval, reset=False): + def setInterval(self, interval, recount=False): if interval > 0: - if reset: + if recount: return self.stopPeriodical() and self.startPeriodical(interval) else: self.interval = interval -- cgit v1.2.3 From 90ede8582e75d451f923c5d0e50f971659ee00cd Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sat, 12 Oct 2013 21:26:11 +0200 Subject: initPeriodical calls startPeriodical if periodcal was overwritten --- pyload/plugins/Addon.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'pyload/plugins') diff --git a/pyload/plugins/Addon.py b/pyload/plugins/Addon.py index 69280ca7e..d0ddfbca4 100644 --- a/pyload/plugins/Addon.py +++ b/pyload/plugins/Addon.py @@ -104,9 +104,13 @@ class Addon(Base): #delete for various reasons self.event_map = None - #self.startPeriodical() + self.initPeriodical() self.init() + def initPeriodical(self): + if id(self.periodical) != id(getattr(Addon, periodical)): + self.startPeriodical() + def startPeriodical(self, interval=self.interval, wait=self.interval): if not self.cb and self.setInterval(interval, False): self.cb = self.core.scheduler.addJob(wait, self._periodical, threaded=False) @@ -118,7 +122,8 @@ class Addon(Base): if self.cb and self.core.scheduler.removeJob(self.cb): self.cb = None return True - return False + else: + return False def setInterval(self, interval, recount=False): if interval > 0: -- cgit v1.2.3