summaryrefslogtreecommitdiff
path: root/fortnite_client/fortnite_events.py
diff options
context:
space:
mode:
authorDmitrii Morozov <snoopdesigns@gmail.com>2024-05-07 17:15:25 +0200
committerDmitrii Morozov <snoopdesigns@gmail.com>2024-05-07 17:15:25 +0200
commitee3e87a6ec19878d56e8f386b20c58e4d9b211b3 (patch)
treec111165b0310581abeea0cecbfd9dabe2933e0d9 /fortnite_client/fortnite_events.py
parentcfa79cbbaf42a8f74a2cd4bca4d1d495b4d597f1 (diff)
Modules
Diffstat (limited to 'fortnite_client/fortnite_events.py')
-rw-r--r--fortnite_client/fortnite_events.py35
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