You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
814 B
Python
34 lines
814 B
Python
1 year ago
|
|
||
|
|
||
|
class Timers:
|
||
|
def __init__(self):
|
||
|
self.trigger_phrase = "timer"
|
||
|
self.timers = {}
|
||
|
|
||
|
def _add_timer(self, time, name):
|
||
|
self.timers[name] = time
|
||
|
# use https://schedule.readthedocs.io/en/stable/examples.html#run-a-job-once to trigger self._trigger_timer()
|
||
|
|
||
|
def _remove_timer(self, name):
|
||
|
del self.timers[name]
|
||
|
|
||
|
def _trigger_timer(self, name):
|
||
|
if name in self.timers:
|
||
|
pass
|
||
|
#TODO: send ntfy.sh to device
|
||
|
#TODO: play timer done sound
|
||
|
|
||
|
|
||
|
def run(self, query):
|
||
|
if "add" in query:
|
||
|
time = 0 #TODO: Natural Language parse time out of phrase
|
||
|
self._add_timer(time)
|
||
|
return True # Return true to indicate success
|
||
|
if "remove" in query:
|
||
|
time = 0 #TODO: Natural Language parse time out of phrase
|
||
|
self._remove_timer(time)
|
||
|
return True
|
||
|
return False # Return false to indicate failure
|
||
|
|
||
|
|