-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtimer.py
31 lines (25 loc) · 1.03 KB
/
timer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#--depends-on commands
import time
from src import ModuleManager, utils
class Module(ModuleManager.BaseModule):
def _get_timer(self, user):
return user.get_setting("timer", None)
def _set_timer(self, user, timestamp: float):
user.set_setting("timer", timestamp)
def _del_timer(self, user):
user.del_setting("timer")
@utils.hook("received.command.starttimer")
def start_timer(self, event):
if self._get_timer(event["user"]):
raise utils.EventError("You already have a timer")
self._set_timer(event["user"], time.time())
event["stdout"].write("Timer started")
@utils.hook("received.command.stoptimer")
def stop_timer(self, event):
timer = self._get_timer(event["user"])
if not timer:
raise utils.EventError("No timer started")
self._del_timer(event["user"])
elapsed = time.time()-timer
pretty = utils.datetime.format.to_pretty_time(int(elapsed))
event["stdout"].write("Timer stopped at %s" % pretty)