summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app_types/__init__.py3
-rw-r--r--formatter/__init__.py20
-rw-r--r--persistence/__init__.py8
3 files changed, 28 insertions, 3 deletions
diff --git a/app_types/__init__.py b/app_types/__init__.py
index a4cf271..436dc59 100644
--- a/app_types/__init__.py
+++ b/app_types/__init__.py
@@ -18,6 +18,7 @@ class UserStats:
matches_played: int
kills: int
wins: int
+ minutesplayed: int
class User:
@@ -52,11 +53,13 @@ class User:
user_stats.matches_played = self.get_stats_value(combined_stats, 'matchesplayed')
user_stats.kills = self.get_stats_value(combined_stats, 'kills')
user_stats.wins = self.get_stats_value(combined_stats, 'wins')
+ user_stats.minutesplayed = self.get_stats_value(combined_stats, 'minutesplayed')
except:
user_stats.level = 0
user_stats.matches_played = 0
user_stats.kills = 0
user_stats.wins = 0
+ user_stats.minutesplayed = 0
return user_stats
def get_stats_value(self, combined_stats: dict, key: str):
diff --git a/formatter/__init__.py b/formatter/__init__.py
index 6fce639..a6e1905 100644
--- a/formatter/__init__.py
+++ b/formatter/__init__.py
@@ -63,6 +63,7 @@ def __format_stats_difference(old_user_stats: UserStats, new_user_stats: UserSta
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)),
+ formatting.mbold("Time played: ") + "{}{}".format(__format_minutes(new_user_stats.minutesplayed), __format_minutes_difference(old_user_stats.minutesplayed, new_user_stats.minutesplayed)),
separator='\n')
def __format_stat_difference(old_stat_value: int, new_stat_value: int):
@@ -72,6 +73,13 @@ def __format_stat_difference(old_stat_value: int, new_stat_value: int):
else:
return ""
+def __format_minutes_difference(old_minutes: int, new_minutes: int):
+ if old_minutes != new_minutes:
+ difference = max(0, new_minutes - old_minutes)
+ return " \(\+ {}\)".format(__format_minutes(difference))
+ else:
+ return ""
+
def __format_stats(user_stats: UserStats):
return formatting.format_text(
formatting.mbold("User: ") + user_stats.user_display_name,
@@ -79,8 +87,20 @@ def __format_stats(user_stats: UserStats):
formatting.mbold("Matches played: ") + str(user_stats.matches_played),
formatting.mbold("Total kills: ") + str(user_stats.kills),
formatting.mbold("Wins: ") + str(user_stats.wins),
+ formatting.mbold("Time played: ") + __format_minutes(user_stats.minutesplayed),
separator='\n')
+def __format_minutes(total_minutes: int):
+ hours = total_minutes // 60
+ minutes = total_minutes % 60
+ hours_postfix = 's'
+ minutes_postfix = 's'
+ if hours % 10 == 1:
+ hours_postfix = ''
+ if minutes % 10 == 1:
+ minutes_postfix = ''
+ return "{} hour{} {} minute{}".format(hours, hours_postfix, minutes, minutes_postfix)
+
def format_friend_online(display_name: str, party_size: int):
if party_size == 1:
text = 'is playing Fortnite\!'
diff --git a/persistence/__init__.py b/persistence/__init__.py
index be040eb..348ae59 100644
--- a/persistence/__init__.py
+++ b/persistence/__init__.py
@@ -58,7 +58,7 @@ class StatsRepository:
def __initialize(self):
cur = self.__get_connection().cursor()
- cur.execute("CREATE TABLE IF NOT EXISTS stats(user_id TEXT, stats_datetime DATETIME, display_name TEXT, level INT, matches_played INT, kills INT, wins INT)")
+ cur.execute("CREATE TABLE IF NOT EXISTS stats(user_id TEXT, stats_datetime DATETIME, display_name TEXT, level INT, matches_played INT, kills INT, wins INT, minutes_played INT)")
cur.execute("CREATE UNIQUE INDEX IF NOT EXISTS user_id_date_idx ON stats(user_id, stats_datetime)")
async def put_stats(self, user: User, stats_datetime: datetime.datetime):
@@ -66,14 +66,15 @@ class StatsRepository:
connection = self.__get_connection()
cur = connection.cursor()
- query = "INSERT OR REPLACE INTO stats(user_id, stats_datetime, display_name, level, matches_played, kills, wins) VALUES('{user_id}', '{stats_datetime}', '{display_name}', {level}, {matches_played}, {kills}, {wins})".format(
+ query = "INSERT OR REPLACE INTO stats(user_id, stats_datetime, display_name, level, matches_played, kills, wins, minutes_played) VALUES('{user_id}', '{stats_datetime}', '{display_name}', {level}, {matches_played}, {kills}, {wins}, {minutes_played})".format(
user_id = user.id,
stats_datetime = stats_datetime,
display_name = user.display_name,
level = stats.level,
matches_played = stats.matches_played,
kills = stats.kills,
- wins = stats.wins)
+ wins = stats.wins,
+ minutes_played = stats.minutesplayed)
cur.execute(query)
connection.commit()
@@ -93,6 +94,7 @@ class StatsRepository:
user_stats.matches_played = int(record[4])
user_stats.kills = int(record[5])
user_stats.wins = int(record[6])
+ user_stats.minutesplayed = int(record[7])
return user_stats
class PresenceRepository: