summaryrefslogtreecommitdiff
path: root/formatter/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'formatter/__init__.py')
-rw-r--r--formatter/__init__.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/formatter/__init__.py b/formatter/__init__.py
new file mode 100644
index 0000000..9efc249
--- /dev/null
+++ b/formatter/__init__.py
@@ -0,0 +1,95 @@
+from telebot import formatting
+import typing
+from app_types import *
+
+# Status
+def format_fortnite_status(fortnite_status):
+ statuses = [__format_fortnite_service_status(service_status) for service_status in fortnite_status.serviceStatuses]
+ return formatting.format_text(
+ formatting.mbold("Fortnite status"),
+ "",
+ '\n'.join(statuses),
+ separator='\n')
+
+def __format_status(status):
+ if (status == True):
+ return u'\u2705'
+ else:
+ return u'\u274c'
+
+def __format_fortnite_service_status(fortnite_service_status):
+ return formatting.format_text(
+ formatting.mbold(fortnite_service_status.serviceName),
+ __format_status(fortnite_service_status.status),
+ separator=': ')
+
+# User
+def format_users(users: typing.List[User]):
+ users_formatted = [format_user(user) for user in users]
+ return formatting.format_text(
+ '\n\n'.join(users_formatted),
+ separator='\n')
+
+def format_user(user: User):
+ return formatting.format_text(
+ formatting.mbold("User: ") + user.display_name,
+ formatting.mbold("ID: ") + user.id,
+ separator='\n')
+
+# Stats
+def format_user_stats_list(stats: typing.List[UserStats]):
+ stats_formatted = [__format_stats(single_stats) for single_stats in stats]
+ return formatting.format_text(
+ '\n\n'.join(stats_formatted),
+ separator='\n')
+
+def format_user_stats_difference(old_user_stats: typing.List[UserStats], new_user_stats: typing.List[UserStats]):
+ stats_formatted = []
+
+ for stats in old_user_stats:
+ matched = [x for x in new_user_stats if x.user_id == stats.user_id][0]
+ stats_formatted.append(__format_stats_difference(stats, matched))
+
+ return formatting.format_text(
+ '\n\n'.join(stats_formatted),
+ separator='\n')
+
+def __format_stats_difference(old_user_stats: UserStats, new_user_stats: UserStats):
+ return formatting.format_text(
+ formatting.mbold("User: ") + new_user_stats.user_display_name,
+ formatting.mbold("ID: ") + new_user_stats.user_id,
+ formatting.mbold("Level: ") + "{}{}".format(str(new_user_stats.level), __format_stat_difference(old_user_stats.level, new_user_stats.level)),
+ formatting.mbold("Matches played: ") + "{}{}".format(str(new_user_stats.matches_played), __format_stat_difference(old_user_stats.matches_played, new_user_stats.matches_played)),
+ formatting.mbold("Total kills: ") + "{}{}".format(str(new_user_stats.kills), __format_stat_difference(old_user_stats.kills, new_user_stats.kills)),
+ formatting.mbold("Wins: ") + "{}{}".format(str(new_user_stats.wins), __format_stat_difference(old_user_stats.wins, new_user_stats.wins)),
+ separator='\n')
+
+def __format_stat_difference(old_stat_value: int, new_stat_value: int):
+ if old_stat_value != new_stat_value:
+ return " \(\+ {}\)".format(str(new_stat_value - old_stat_value))
+ else:
+ return ""
+
+def __format_stats(user_stats: UserStats):
+ return formatting.format_text(
+ formatting.mbold("User: ") + user_stats.user_display_name,
+ formatting.mbold("ID: ") + user_stats.user_id,
+ formatting.mbold("Level: ") + str(user_stats.level),
+ formatting.mbold("Matches played: ") + str(user_stats.matches_played),
+ formatting.mbold("Total kills: ") + str(user_stats.kills),
+ formatting.mbold("Wins: ") + str(user_stats.wins),
+ separator='\n')
+
+def format_friend_online(display_name: str, party_size: int):
+ if party_size == 1:
+ text = 'is playing Fortnite\!'
+ elif party_size == 2:
+ text = 'is playing Fortnite together with {} friend\!'.format(str(party_size - 1))
+ elif party_size > 2:
+ text = 'is playing Fortnite together with {} friends\!'.format(str(party_size - 1))
+ return formatting.format_text(
+ u'\u2b50',
+ formatting.mbold('{}'.format(display_name)),
+ text,
+ u'\u2b50',
+ separator=' ') \ No newline at end of file