#!/usr/bin/python3 import os import time, threading, schedule import telebot from fortniteStatusWrapper import * from fortniteStatusFormatter import * from persistence import UserRepository if "TELEBOT_BOT_TOKEN" not in os.environ: raise AssertionError("Please configure TELEBOT_BOT_TOKEN as environment variables") bot = telebot.TeleBot(os.environ["TELEBOT_BOT_TOKEN"]) userRepository = UserRepository('db.sqlite') fortniteStatusWrapper = FortniteStatusWrapper() @bot.message_handler(commands = ['start']) def startCommand(message): bot.reply_to(message, "This bot is doing nothing so far..") userRepository.putUser(message.chat.id) class FortniteStatusObserver(Observer): def update(self, fortniteStatus) -> None: for user in userRepository.getAllUsers(): bot.send_message( user[0], formatFortniteStatus(fortniteStatus), parse_mode='MarkdownV2' ) if __name__ == '__main__': fortniteStatusWrapper.attach(FortniteStatusObserver()) main_thread = threading.Thread(target=bot.infinity_polling, name='bot_infinity_polling', daemon=True) main_thread.start() main_thread.join()