diff options
author | Dmitrii Morozov <snoopdesigns@gmail.com> | 2024-05-07 17:15:25 +0200 |
---|---|---|
committer | Dmitrii Morozov <snoopdesigns@gmail.com> | 2024-05-07 17:15:25 +0200 |
commit | ee3e87a6ec19878d56e8f386b20c58e4d9b211b3 (patch) | |
tree | c111165b0310581abeea0cecbfd9dabe2933e0d9 /fortnite_client/fortnite_events.py | |
parent | cfa79cbbaf42a8f74a2cd4bca4d1d495b4d597f1 (diff) |
Modules
Diffstat (limited to 'fortnite_client/fortnite_events.py')
-rw-r--r-- | fortnite_client/fortnite_events.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/fortnite_client/fortnite_events.py b/fortnite_client/fortnite_events.py new file mode 100644 index 0000000..2d252ad --- /dev/null +++ b/fortnite_client/fortnite_events.py @@ -0,0 +1,35 @@ +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))
\ No newline at end of file |