From a53ea1d94a25f010dbba8a471bc832874bbb4ae7 Mon Sep 17 00:00:00 2001 From: ue86388 Date: Wed, 10 Apr 2024 15:09:51 +0200 Subject: Make it work again --- Formatter.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Formatter.py (limited to 'Formatter.py') diff --git a/Formatter.py b/Formatter.py new file mode 100644 index 0000000..b87735b --- /dev/null +++ b/Formatter.py @@ -0,0 +1,63 @@ +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=' ') \ No newline at end of file -- cgit v1.2.3