from telebot import formatting import typing from Types import * # 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=': ') # User def formatUsers(users: typing.List[User]): users_formatted = [formatUser(user) for user in users] return formatting.format_text( '\n\n'.join(users_formatted), separator='\n') def formatUser(user: User): return formatting.format_text( formatting.mbold("User: ") + user.display_name, formatting.mbold("ID: ") + user.id, separator='\n') # Stats def formatUserStatsList(stats: typing.List[UserStats]): stats_formatted = [__formatStats(singleStats) for singleStats in stats] return formatting.format_text( '\n\n'.join(stats_formatted), separator='\n') def formatUserStatsDifference(oldUserStats: typing.List[UserStats], newUserStats: typing.List[UserStats]): stats_formatted = [] for stats in oldUserStats: matched = [x for x in newUserStats if x.user_id == stats.user_id][0] stats_formatted.append(__formatStatsDifference(stats, matched)) return formatting.format_text( '\n\n'.join(stats_formatted), separator='\n') def __formatStatsDifference(oldUserStats: UserStats, newUserStats: UserStats): return formatting.format_text( formatting.mbold("User: ") + oldUserStats.user_display_name, formatting.mbold("ID: ") + oldUserStats.user_id, formatting.mbold("Level: ") + "{} \(\+ {}\)".format(str(oldUserStats.level), str(newUserStats.level - oldUserStats.level)), formatting.mbold("Matches played: ") + "{} \(\+ {}\)".format(str(oldUserStats.matches_played), str(newUserStats.matches_played - oldUserStats.matches_played)), formatting.mbold("Total kills: ") + "{} \(\+ {}\)".format(str(oldUserStats.kills), str(newUserStats.kills - oldUserStats.kills)), formatting.mbold("Wins: ") + "{} \(\+ {}\)".format(str(oldUserStats.wins), str(newUserStats.wins - oldUserStats.wins)), separator='\n') def __formatStats(userStats: UserStats): return formatting.format_text( formatting.mbold("User: ") + userStats.user_display_name, formatting.mbold("ID: ") + userStats.user_id, formatting.mbold("Level: ") + str(userStats.level), formatting.mbold("Matches played: ") + str(userStats.matches_played), formatting.mbold("Total kills: ") + str(userStats.kills), formatting.mbold("Wins: ") + str(userStats.wins), separator='\n') def formatFriendOnline(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=' ')