From 3089066696ce90eb1a4c0b381e9fc414ec00db85 Mon Sep 17 00:00:00 2001 From: ue86388 Date: Tue, 16 Apr 2024 15:28:02 +0200 Subject: User statistics --- FortniteClient.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'FortniteClient.py') diff --git a/FortniteClient.py b/FortniteClient.py index c9b9997..a8e6774 100755 --- a/FortniteClient.py +++ b/FortniteClient.py @@ -6,23 +6,30 @@ import os import typing from DeviceAuth import DeviceAuth from FortniteEvents import * +from Types import * __fortnite_account_key__ = 'fornite-account-key' class FortniteClient(fortnitepy.Client): device_auth = DeviceAuth() - observer = None + presenceObserver = None + clientInit = None - def __init__(self, friendPresenceObserver: PresenceObserver): - self.observer = friendPresenceObserver + def __init__(self, friendPresenceObserver: PresenceObserver, clientInit: ClientInit): + self.presenceObserver = friendPresenceObserver + self.clientInit = clientInit if self.device_auth.device_auth_file_exists(): self.__auth_device_auth() else: self.__auth_authorization_code() - def get_friends(self): - return self.friends + async def get_friends(self) -> typing.List[User]: + return [User.from_fortnite_friend(friend) for friend in self.friends] + + 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 __auth_authorization_code(self): code = input("Enter authorization code (https://www.epicgames.com/id/api/redirect?clientId=3446cd72694c4a4485d81b77adbb2141&responseType=code):") @@ -67,13 +74,12 @@ class FortniteClient(fortnitepy.Client): print('----------------') await self.generate_auth_details() - - # Accept pending friends - for friend_request in self.incoming_pending_friends: - await self.event_friend_request(friend_request) + + # Call observers + await self.clientInit.on_event() async def event_friend_request(self, request: typing.Union[fortnitepy.friend.IncomingPendingFriend, fortnitepy.friend.OutgoingPendingFriend]): await IncomingFriendRequest.on_event(request) async def event_friend_presence(self, before, after: fortnitepy.Presence): - await FriendPresence.on_event(before, after, self.observer) \ No newline at end of file + await FriendPresence.on_event(before, after, self.presenceObserver) \ No newline at end of file -- cgit v1.2.3