summaryrefslogtreecommitdiff
path: root/FortniteEvents.py
blob: 77452cc372090f8c86b2f7f86ff8796d7c76e3a4 (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
import fortnitepy
import typing
import time
from FortniteClient import *
from TelegramBot import *
from persistence import PresenceRepository
from Formatter import *

class ClientInitObserverImpl(ClientInitObserver):
    async def on_event(self, fortniteClient: FortniteClient) -> None:
        print('----------------')
        print('FortniteClient ready as:')
        print(fortniteClient.user.display_name)
        print(fortniteClient.user.id)
        print('----------------')

class FriendPresenceObserverImpl(FriendPresenceObserver):

    __telegramBot: TelegramBot
    __presenceRepository: PresenceRepository

    def __init__(self, telegramBot: TelegramBot, presenceRepository: PresenceRepository):
        self.__telegramBot = telegramBot
        self.__presenceRepository = presenceRepository

    async def update(self, display_name: str, playing: bool, party_size: int) -> None:
        if playing:
            last_presence = self.__presenceRepository.getLastUserPresence(display_name)
            diff = time.time() - last_presence
            if diff > 60 * 60: # 60 minutes
                await self.__notifyFriendPlaying(display_name, party_size)
        self.__presenceRepository.setLastUserPresence(display_name, time.time())

    async def __notifyFriendPlaying(self, display_name: str, party_size: int):
        await self.__telegramBot.send_message_to_all(formatFriendOnline(display_name, party_size))