summaryrefslogtreecommitdiff
path: root/FortniteStatusNotifier.py
blob: 81c7d12cf4c317ad013436aabd67e855ff492b61 (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
36
37
38
from telebot import formatting
import time
import asyncio
from pythonFortniteStatus.FortniteStatus import *

# Polling interval in seconds
__polling_interval__ = 5 * 60 # 5 minutes

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)