From bc12c7789199d2e93513ea018badaf87815ae7e6 Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 19 Apr 2016 13:25:50 +0100 Subject: did what I said I would sooner than I thought I would. centralised persisting timers through bot restarts. --- Timer.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'Timer.py') diff --git a/Timer.py b/Timer.py index 32392628..789e7e37 100644 --- a/Timer.py +++ b/Timer.py @@ -1,22 +1,27 @@ -import time +import time, uuid class Timer(object): - def __init__(self, bot, event_name, delay, **kwargs): + def __init__(self, bot, event_name, delay, next_due=None, **kwargs): + self.id = uuid.uuid4().hex self.bot = bot self.event_name = event_name self.delay = delay + if next_due: + self.next_due = next_due + else: + self.set_next_due() self.kwargs = kwargs self._done = False self.call_count = 0 - def set_started_time(self): - self.started_time = time.time() + def set_next_due(self): + self.next_due = time.time()+self.delay def due(self): return self.time_left() <= 0 def time_left(self): - return (self.started_time+self.delay)-time.time() + return self.next_due-time.time() def call(self): self._done = True @@ -26,7 +31,7 @@ class Timer(object): def redo(self): self._done = False - self.set_started_time() + self.set_next_due() def done(self): return self._done -- cgit v1.3.1-10-gc9f91