#!/usr/bin/python3 import fortnitepy import json import os email = 'dmitry-morozov.rjkv73@yandex.ru' password = 'Dimka2407985$' filename = 'device_auths.json' class MyClient(fortnitepy.Client): def __init__(self): if self._device_auth_file_exists(): device_auth_details = self.get_device_auth_details().get(email, {}) super().__init__( auth=fortnitepy.DeviceAuth( **device_auth_details ) ) else: code = input("Enter authorization code (https://www.epicgames.com/id/api/redirect?clientId=3446cd72694c4a4485d81b77adbb2141&responseType=code):") print(code) super().__init__( auth=fortnitepy.AuthorizationCodeAuth( code = code ) ) def _device_auth_file_exists(self): return os.path.isfile(filename) def get_device_auth_details(self): if os.path.isfile(filename): with open(filename, 'r') as fp: return json.load(fp) return {} def store_device_auth_details(self, email, details): existing = self.get_device_auth_details() existing[email] = details with open(filename, 'w') as fp: json.dump(existing, fp) async def event_device_auth_generate(self, details, email): self.store_device_auth_details(email, details) async def event_ready(self): print('----------------') print('Client ready as') print(self.user.display_name) print(self.user.id) print('----------------') if not self._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, email ) for incomingPedingFriend in self.incoming_pending_friends: print('Accepting friend request') await incomingPedingFriend.accept() async def event_party_invite(self, invitation: fortnitepy.ReceivedPartyInvitation): clientParty = await invitation.accept() for partyMember in clientParty.members: if not self.get_friend(partyMember.id) and self.user.id != partyMember.id: print('Adding {} as friend'.format(partyMember.display_name)) await partyMember.add() async def event_friend_request(self, request: fortnitepy.friend.IncomingPendingFriend): print('Accepting friend request') await request.accept() async def event_friend_presence(self, before, after: fortnitepy.Presence): if before is not None and after is not None: print('event_friend_presence for user {}'.format(after.friend.display_name)) print("Before available {}, joinable {}, playing {}, lfg {}".format(before.available, before.joinable, before.playing, before.lfg)) print("After available {}, joinable {}, playing {}, lfg {}".format(after.available, after.joinable, after.playing, after.lfg)) client = MyClient() client.run()