From a6c56682b74acb7ef568913bbc964b4f17cf3202 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Sun, 10 Apr 2011 03:52:46 +0200 Subject: Implement paused chate state. fixed #2124 --- src/timed_events.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/timed_events.py') diff --git a/src/timed_events.py b/src/timed_events.py index 7cb92cde..66d3449e 100644 --- a/src/timed_events.py +++ b/src/timed_events.py @@ -31,6 +31,7 @@ class TimedEvent(object): Note that these events can NOT be used for very small delay or a very precise date, since the check for events is done once per second, as a maximum. + The callback and its arguments should be passed as the lasts arguments. """ def __init__(self, date, callback, *args): self._callback = callback @@ -57,12 +58,24 @@ class TimedEvent(object): else: return False + def change_date(self, date): + """ + Simply change the date of the event + """ + self.next_call_date = date + + def add_delay(self, delay): + """ + Add a delay (in seconds) to the date + """ + self.next_call_date += datetime.timedelta(seconds=delay) + class DelayedEvent(TimedEvent): """ The date is calculated from now + a delay in seconds Use it if you want an event to happen in, e.g. 6 seconds """ def __init__(self, delay, callback, *args): - date = datetime.datetime.now() + datetime.timedelta(0, delay) + date = datetime.datetime.now() + datetime.timedelta(seconds=delay) TimedEvent.__init__(self, date, callback, args) -- cgit v1.2.3