From 7b992afe70925f244ca6e9746071ae71e497b54e Mon Sep 17 00:00:00 2001 From: Dmitrii Morozov Date: Mon, 8 Apr 2024 23:40:24 +0200 Subject: Observe status of friends --- FortniteStatusWrapper.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 FortniteStatusWrapper.py (limited to 'FortniteStatusWrapper.py') diff --git a/FortniteStatusWrapper.py b/FortniteStatusWrapper.py new file mode 100644 index 0000000..6a80348 --- /dev/null +++ b/FortniteStatusWrapper.py @@ -0,0 +1,40 @@ +from telebot import formatting +import time, threading, schedule +from pythonFortniteStatus.FortniteStatus import * + +__polling_interval__ = 5 + +fortniteStatus = FortniteStatus() + +class Observer: + def update(self, fortniteStatus) -> None: + pass + +class FortniteStatusWrapper: + + observers = [] + fortniteStatus = None + + def __init__(self): + schedule.every(__polling_interval__).seconds.do(self.__readStatus) + threading.Thread(target=self.__scheduleHandler, name='fortnite_status_scheduler', daemon=True).start() + self.fortniteStatus = fortniteStatus.getStatus() + + def __scheduleHandler(self): + while True: + schedule.run_pending() + time.sleep(1) + + def __readStatus(self): + serviceStatusTmp = fortniteStatus.getStatus() + if serviceStatusTmp != self.fortniteStatus: + self.notify(serviceStatusTmp) + self.fortniteStatus = serviceStatusTmp + + def notify(self, fortniteStatus): + print("Fortnite status changed, notifying observers") + for observer in self.observers: + observer.update(fortniteStatus) + + def attach(self, observer: Observer): + self.observers.append(observer) \ No newline at end of file -- cgit v1.2.3