summaryrefslogtreecommitdiff
path: root/FortniteStatusWrapper.py
blob: aa7ee12fae6f88d7ac020b833d37682e45c90698 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from telebot import formatting
import time
from pythonFortniteStatus.FortniteStatus import *

__polling_interval__ = 5

fortniteStatus = FortniteStatus()

class Observer:
    async def update(self, fortniteStatus) -> None:
        pass

class FortniteStatusWrapper:

    observers = []
    fortniteStatus = None
    
    async def run(self):
        while True:
            await self.__readStatus()
            time.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")
        for observer in self.observers:
            await observer.update(fortniteStatus)

    def attach(self, observer: Observer):
        self.observers.append(observer)