from telebot import formatting import time import asyncio from pythonFortniteStatus.FortniteStatus import * __polling_interval__ = 5 fortniteStatus = FortniteStatus() class Observer: async def update(self, fortniteStatus) -> None: pass class FortniteStatusNotifier: observer = None fortniteStatus = None def __init__(self, observer: Observer): self.observer = observer async def run(self): # Initialize status self.fortniteStatus = fortniteStatus.getStatus() while True: await self.__readStatus() await asyncio.sleep(__polling_interval__) async def __readStatus(self): serviceStatusTmp = fortniteStatus.getStatus() if serviceStatusTmp != self.fortniteStatus: await self.__notify(serviceStatusTmp) self.fortniteStatus = serviceStatusTmp async def __notify(self, fortniteStatus): print("Fortnite status changed, notifying observers") await self.observer.update(fortniteStatus)