tbot-with-extras/bot_wrapper.py
2020-10-19 12:27:59 +02:00

48 lines
1.5 KiB
Python

import time
import datetime
class ModuleWrapper():
"""Wrapper for the BOT-functionality"""
def __init__(self, bot_module, clock_module):
""""""
print("Initializing bot-functionality")
#######################################################################
self.bot = bot_module
self.clock = clock_module
# available hw-commands. Must be updated manually!
self.hw_commands = {
"blink" : self.clock.alarm_blink,
"wakeup" : self.clock.wake_light,
"showmessage" : self.clock.show_message,
}
self.bot.add_commands(self.hw_commands)
self.message_loop()
def message_loop(self):
"""Calls the telegram entity regularly to check for activity"""
print("Starting bot mainloop")
while(True):
result = self.bot.telegram.fetch_updates()
if len(result) != 0:
command, params = self.bot.telegram.handle_result(result)
if command != "nothing":
if command in self.hw_commands:
self.react_command(command,params) #hw-level
else:
self.bot.react_command(command,params) #sw-level
time.sleep(5)
def react_command(self, command, params):
""""""
# Oh yeah, that needs to be changed
# so params is a list, and so, to pass the commands, we need to unpack it:
# should work fine
self.hw_commands[command](*params)