summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fortnite_client/__init__.py5
-rw-r--r--telegram_bot/commands.py28
2 files changed, 21 insertions, 12 deletions
diff --git a/fortnite_client/__init__.py b/fortnite_client/__init__.py
index 28cbf80..91f334a 100644
--- a/fortnite_client/__init__.py
+++ b/fortnite_client/__init__.py
@@ -30,6 +30,7 @@ class FortniteClient(fortnitepy.Client):
__friend_presence_observer: FriendPresenceObserver
__client_init_observer: ClientInitObserver
__new_friend_observer: NewFriendObserver
+ __is_initialized: bool = False
def __init__(self, client_init_observer: ClientInitObserver, friend_presence_observer: FriendPresenceObserver, new_friend_observer: NewFriendObserver):
self.__device_auth = DeviceAuth()
@@ -47,6 +48,9 @@ class FortniteClient(fortnitepy.Client):
async def find_user(self, display_name: str):
user: fortnitepy.User = await self.fetch_user_by_display_name(display_name)
return User.from_fortnite_friend(user)
+
+ def is_initialized(self):
+ return self.__is_initialized
def __auth_authorization_code(self):
code = input("Enter authorization code (https://www.epicgames.com/id/api/redirect?clientId=3446cd72694c4a4485d81b77adbb2141&responseType=code):")
@@ -84,6 +88,7 @@ class FortniteClient(fortnitepy.Client):
self.__device_auth.store_device_auth_details(email, details)
async def event_ready(self):
+ self.__is_initialized = True
await self.__generate_auth_details()
await self.__client_init_observer.on_event(self)
diff --git a/telegram_bot/commands.py b/telegram_bot/commands.py
index cba5d5f..1e3295b 100644
--- a/telegram_bot/commands.py
+++ b/telegram_bot/commands.py
@@ -44,8 +44,9 @@ class GetFriendsCommand(CommandHandler):
self.__fortnite_client = fortnite_client
async def handle(self, message: telebot.types.Message):
- friends = await self.__fortnite_client.get_friends()
- await self.__telegram_bot.reply(message, format_users(friends))
+ if self.__fortnite_client.is_initialized():
+ friends = await self.__fortnite_client.get_friends()
+ await self.__telegram_bot.reply(message, format_users(friends))
class GetStatsCommand(CommandHandler):
@@ -58,9 +59,10 @@ class GetStatsCommand(CommandHandler):
self.__fortnite_client = fortnite_client
async def handle(self, message: telebot.types.Message):
- friends = await self.__fortnite_client.get_friends()
- stats = [await friend.fetch_stats() for friend in friends]
- await self.__telegram_bot.reply(message, format_user_stats_list(stats))
+ if self.__fortnite_client.is_initialized():
+ friends = await self.__fortnite_client.get_friends()
+ stats = [await friend.fetch_stats() for friend in friends]
+ await self.__telegram_bot.reply(message, format_user_stats_list(stats))
class GetTodayStatsCommand(CommandHandler):
@@ -74,10 +76,11 @@ class GetTodayStatsCommand(CommandHandler):
self.__stats_repository = stats_repository
async def handle(self, message: telebot.types.Message):
- persisted_stats = self.__stats_repository.get_stats()
- friends = await self.__fortnite_client.get_friends()
- current_stats = [await friend.fetch_stats() for friend in friends]
- await self.__telegram_bot.reply(message, format_user_stats_difference(persisted_stats, current_stats))
+ if self.__fortnite_client.is_initialized():
+ persisted_stats = self.__stats_repository.get_stats()
+ friends = await self.__fortnite_client.get_friends()
+ current_stats = [await friend.fetch_stats() for friend in friends]
+ await self.__telegram_bot.reply(message, format_user_stats_difference(persisted_stats, current_stats))
class RecordStatsCommand(CommandHandler):
@@ -89,6 +92,7 @@ class RecordStatsCommand(CommandHandler):
self.__stats_repository = stats_repository
async def handle(self, message: telebot.types.Message):
- friends = await self.__fortnite_client.get_friends()
- for friend in friends:
- await self.__stats_repository.put_stats(friend) \ No newline at end of file
+ if self.__fortnite_client.is_initialized():
+ friends = await self.__fortnite_client.get_friends()
+ for friend in friends:
+ await self.__stats_repository.put_stats(friend) \ No newline at end of file