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))