import fortnitepy import typing import time from fortnite_client import * from telegram_bot import * from persistence import * from formatter import * class ClientInitObserverImpl(ClientInitObserver): async def on_event(self, fortnite_client: FortniteClient) -> None: print('----------------') print('FortniteClient ready as:') print(fortnite_client.user.display_name) print(fortnite_client.user.id) print('----------------') class FriendPresenceObserverImpl(FriendPresenceObserver): __telegram_bot: TelegramBot __presence_repository: PresenceRepository def __init__(self, telegram_bot: TelegramBot, presence_repository: PresenceRepository): self.__telegram_bot = telegram_bot self.__presence_repository = presence_repository async def update(self, display_name: str, playing: bool, party_size: int) -> None: if playing: last_presence = self.__presence_repository.get_last_user_presence(display_name) diff = time.time() - last_presence if diff > 60 * 60: # 60 minutes await self.__notify_friend_playing(display_name, party_size) self.__presence_repository.set_last_user_presence(display_name, time.time()) async def __notify_friend_playing(self, display_name: str, party_size: int): await self.__telegram_bot.send_message_to_all(format_friend_online(display_name, party_size))