summaryrefslogtreecommitdiff
path: root/Formatter.py
diff options
context:
space:
mode:
Diffstat (limited to 'Formatter.py')
-rw-r--r--Formatter.py63
1 files changed, 63 insertions, 0 deletions
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