summaryrefslogtreecommitdiff
path: root/FortniteStatusWrapper.py
diff options
context:
space:
mode:
authorDmitrii Morozov <snoopdesigns@gmail.com>2024-04-08 23:40:24 +0200
committerDmitrii Morozov <snoopdesigns@gmail.com>2024-04-08 23:40:24 +0200
commit7b992afe70925f244ca6e9746071ae71e497b54e (patch)
tree8c3b0184f5060c8e3adc632f27ff694a1b22c0e2 /FortniteStatusWrapper.py
parent733e7e23a14588358607a65c2bb1f2677c1e53c6 (diff)
Observe status of friends
Diffstat (limited to 'FortniteStatusWrapper.py')
-rw-r--r--FortniteStatusWrapper.py40
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