summaryrefslogtreecommitdiff
path: root/fortnite_client.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.py
parentcfa79cbbaf42a8f74a2cd4bca4d1d495b4d597f1 (diff)
Modules
Diffstat (limited to 'fortnite_client.py')
-rwxr-xr-xfortnite_client.py108
1 files changed, 0 insertions, 108 deletions
diff --git a/fortnite_client.py b/fortnite_client.py
deleted file mode 100755
index 16b2652..0000000
--- a/fortnite_client.py
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/python3
-
-import fortnitepy
-import json
-import os
-import typing
-from device_auth import DeviceAuth
-from app_types import *
-
-__fortnite_account_key__ = 'fornite-account-key'
-
-# Intefaces for events
-class FriendPresenceObserver:
- async def update(self, display_name: str, playing: bool, party_size: int) -> None:
- pass
-
-class ClientInitObserver:
- async def on_event(self, fortnite_client) -> None:
- pass
-
-class FortniteClient(fortnitepy.Client):
-
- __device_auth: DeviceAuth
- __friend_presence_observer: FriendPresenceObserver
- __client_init_observer: ClientInitObserver
-
- def __init__(self, client_init_observer: ClientInitObserver, friend_presence_observer: FriendPresenceObserver):
- self.__device_auth = DeviceAuth()
- self.__client_init_observer = client_init_observer
- self.__friend_presence_observer = friend_presence_observer
- if self.__device_auth.device_auth_file_exists():
- self.__auth_device_auth()
- else:
- self.__auth_authorization_code()
-
- 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):")
- super().__init__(
- auth=fortnitepy.AuthorizationCodeAuth(
- code = code
- )
- )
-
- def __auth_device_auth(self):
- device_auth_details = self.__device_auth.get_device_auth_details().get(__fortnite_account_key__, {})
- super().__init__(
- auth=fortnitepy.DeviceAuth(
- **device_auth_details
- )
- )
-
- # Generate auth details if none were supplied yet
- async def __generate_auth_details(self):
- if not self.__device_auth.device_auth_file_exists():
- device_auth_data = await self.auth.generate_device_auth()
- details = {
- 'device_id': device_auth_data['deviceId'],
- 'account_id': device_auth_data['accountId'],
- 'secret': device_auth_data['secret'],
- }
- self.auth.__dict__.update(details)
- self.dispatch_event(
- 'device_auth_generate',
- details,
- __fortnite_account_key__
- )
-
- async def event_device_auth_generate(self, details, email):
- self.__device_auth.store_device_auth_details(email, details)
-
- async def event_ready(self):
- await self.__generate_auth_details()
- await self.__client_init_observer.on_event(self)
-
- async def event_friend_request(self, request: typing.Union[fortnitepy.friend.IncomingPendingFriend, fortnitepy.friend.OutgoingPendingFriend]):
- await IncomingFriendRequestEvent.on_event(request)
-
- async def event_friend_presence(self, before, after: fortnitepy.Presence):
- await FriendPresenceEvent.on_event(before, after, self.__friend_presence_observer)
-
-class FriendPresenceEvent:
- async def on_event(before, after: fortnitepy.Presence, friend_presence_observer: FriendPresenceObserver):
- if before is not None and after is not None:
- if before.playing != after.playing:
- print('FriendPresence changed for user {}, before {}, after {}'.format(after.friend.display_name, before.playing, after.playing))
- party_size: int = 1
- if after.has_properties:
- party: fortnitepy.PresenceParty = after.party
- if party is not None and party.playercount is not None:
- party_size = int(party.playercount)
- await friend_presence_observer.update(
- after.friend.display_name,
- after.playing,
- party_size)
-
-class IncomingFriendRequestEvent:
- async def on_event(request: typing.Union[fortnitepy.friend.IncomingPendingFriend, fortnitepy.friend.OutgoingPendingFriend]):
- if isinstance(request, fortnitepy.friend.IncomingPendingFriend):
- incoming_request = typing.cast(fortnitepy.friend.IncomingPendingFriend, request)
- print('Accepting friend request from {}'.format(incoming_request.display_name))
- #await incoming_request.accept() \ No newline at end of file