From 8e996d9094814b74195c49d4c8aa2d1ebb37e206 Mon Sep 17 00:00:00 2001 From: Dmitrii Morozov Date: Mon, 6 May 2024 18:27:03 +0200 Subject: Save last user presence in database --- persistence.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'persistence.py') diff --git a/persistence.py b/persistence.py index 92452ce..8003a41 100644 --- a/persistence.py +++ b/persistence.py @@ -91,4 +91,39 @@ class StatsRepository: userStats.matches_played = int(record[3]) userStats.kills = int(record[4]) userStats.wins = int(record[5]) - return userStats \ No newline at end of file + return userStats + +class PresenceRepository: + + def __init__(self): + self.__initialize() + + def __getConnection(self): + return sqlite3.connect('db.sqlite') + + def __initialize(self): + cur = self.__getConnection().cursor() + cur.execute("CREATE TABLE IF NOT EXISTS user_presence(display_name TEXT, last_online INT)") + cur.execute("CREATE UNIQUE INDEX IF NOT EXISTS display_name_idx ON user_presence(display_name)") + + def getLastUserPresence(self, display_name): + connection = self.__getConnection() + cur = connection.cursor() + query = "select last_online from user_presence where display_name = '{display_name}'s".format(display_name = display_name) + cur.execute(query) + user_presence = cur.fetchone() + + if user_presence: + return user_presence[0] + else: + return 0 + + def setLastUserPresence(self, display_name: str, last_online: int): + connection = self.__getConnection() + cur = connection.cursor() + query = "INSERT OR REPLACE INTO user_presence(display_name, last_online) VALUES('{display_name}', {last_online})".format( + display_name = display_name, + last_online = last_online) + cur.execute(query) + connection.commit() + \ No newline at end of file -- cgit v1.2.3