diff options
author | Dmitrii Morozov <snoopdesigns@gmail.com> | 2024-04-08 23:40:24 +0200 |
---|---|---|
committer | Dmitrii Morozov <snoopdesigns@gmail.com> | 2024-04-08 23:40:24 +0200 |
commit | 7b992afe70925f244ca6e9746071ae71e497b54e (patch) | |
tree | 8c3b0184f5060c8e3adc632f27ff694a1b22c0e2 /FortniteStatusWrapper.py | |
parent | 733e7e23a14588358607a65c2bb1f2677c1e53c6 (diff) |
Observe status of friends
Diffstat (limited to 'FortniteStatusWrapper.py')
-rw-r--r-- | FortniteStatusWrapper.py | 40 |
1 files changed, 40 insertions, 0 deletions
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 |