diff options
Diffstat (limited to 'persistence.py')
-rw-r--r-- | persistence.py | 37 |
1 files changed, 36 insertions, 1 deletions
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 |