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

57 lines
1.9 KiB
Python

import time
import datetime
from threading import Thread
class ModuleWrapper():
"""Wrapper for the CLOCK-functionality"""
def __init__(self, bot_module, clock_module):
""""""
print("Initializing clock-functionality")
self.clock = clock_module
self.bot = bot_module
self.time_thread = Thread(target=self.mainloop)
self.time_thread.start()
self.weather = ""
self.categories = categories = {
"cloud": "cloud",
"cloud_with_rain": "rain and cloud",
"thunder_cloud_rain": "thunder and cloud",
"droplet": "rain and cloud",
"cloud_snow": "snow and cloud",
"sun": "sun",
"Mist": "fog and clouds",
"Smoke": "Smoke",
"Haze": "Haze",
"Dust": "Dust",
"Fog": "fog",
"Sand": "Sand",
"Dust": "Dust",
"Ash": "Ash",
"Squal": "Squal",
"Tornado": "Tornado",
}
def mainloop(self):
"""Runs the showing of the clock-face periodically (better way?)"""
print("Starting clock mainloop")
prev_time = 0
prev_weather_time = datetime.datetime.fromtimestamp(0)
while True:
if prev_time == datetime.datetime.now().strftime("%H:%M"):
time.sleep(10)
else:
d = datetime.datetime.now() - prev_weather_time
if d.total_seconds() >= 3*3600:
prev_weather_time = datetime.datetime.now()
weather = self.bot.bot_show_weather(["zurich"])
l1 = weather[:weather.find("\n")]
l1 = l1.replace("<b>Today:</b> ","")
l1 = l1.replace (":","")
self.weather = l1
prev_time = datetime.datetime.now().strftime("%H:%M")
self.clock.set_face(self.categories[self.weather])