from telebot import formatting import fortnitepy, typing # Status def formatFortniteStatus(fortniteStatus): statuses = [__formatFortniteServiceStatus(serviceStatus) for serviceStatus in fortniteStatus.serviceStatuses] return formatting.format_text( formatting.mbold("Fortnite status"), "", '\n'.join(statuses), separator='\n') def __formatStatus(status): if (status == True): return u'\u2705' else: return u'\u274c' def __formatFortniteServiceStatus(fortniteServiceStatus): return formatting.format_text( formatting.mbold(fortniteServiceStatus.serviceName), __formatStatus(fortniteServiceStatus.status), separator=': ') # Friend async def formatFriends(friends: typing.List[fortnitepy.Friend]): friends_formatted = [await __formatFriend(friend) for friend in friends] return formatting.format_text( '\n\n'.join(friends_formatted), separator='\n') async def __formatFriend(friend: fortnitepy.Friend): stats = await friend.fetch_br_stats() return await formatUser(friend) # User async def formatUser(user: fortnitepy.User): stats = await user.fetch_br_stats() combined_stats = stats.get_combined_stats() if 'keyboardmouse' in combined_stats: return __formatUserDevice(user, combined_stats['keyboardmouse']) else: return __formatUserDevice(user, combined_stats['gamepad']) def __formatUserDevice(user: fortnitepy.User, device_stats: dict): return formatting.format_text( formatting.mbold("User: ") + user.display_name, formatting.mbold("External auth: ") + ', '.join([__formatExternalAuth(external_auth) for external_auth in user.external_auths]), formatting.mbold("ID: ") + user.id, formatting.mbold("Matches played: ") + str(device_stats['matchesplayed']), formatting.mbold("Total kills: ") + str(device_stats['kills']), formatting.mbold("Wins: ") + str(device_stats['wins']), separator='\n') def __formatExternalAuth(external_auth: fortnitepy.ExternalAuth): return '{} \({}\)'.format(external_auth.external_display_name, external_auth.type) def formatFriendOnline(display_name: str): return formatting.format_text( u'\u2b50', formatting.mbold('{}'.format(display_name)), 'is playing Fortnite\!', u'\u2b50', separator=' ')