aboutsummaryrefslogtreecommitdiff
path: root/modules/timer.py
blob: ce3939c6725920e01e55d095d8d3a7161bdbabf9 (about) (plain) (blame)
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.to_pretty_time(int(elapsed))
        event["stdout"].write("Timer stopped at %s" % pretty)