From 9e555cddb9b1f02ce5d65da8a42437064760ae58 Mon Sep 17 00:00:00 2001 From: Dmitrii Morozov Date: Sat, 22 Jun 2024 11:00:58 +0200 Subject: Fixed stats --- fortnite_client/fortnite_events.py | 3 ++- persistence/__init__.py | 4 ++-- telegram_bot/commands.py | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/fortnite_client/fortnite_events.py b/fortnite_client/fortnite_events.py index 01ca888..2447d82 100644 --- a/fortnite_client/fortnite_events.py +++ b/fortnite_client/fortnite_events.py @@ -1,6 +1,7 @@ import fortnitepy import typing import time +import datetime from fortnite_client import * from telegram_bot import * from persistence import * @@ -44,7 +45,7 @@ class NewFriendObserverImpl(NewFriendObserver): self.__stats_repository = stats_repository async def on_event(self, friend: User) -> None: - await self.__stats_repository.put_stats(friend) + await self.__stats_repository.put_stats(friend, datetime.datetime.now()) await self.__telegram_bot.send_message_to_all(format_new_friend(friend.display_name)) async def on_failure(self, display_name) -> None: diff --git a/persistence/__init__.py b/persistence/__init__.py index 1c6057c..be040eb 100644 --- a/persistence/__init__.py +++ b/persistence/__init__.py @@ -61,7 +61,7 @@ class StatsRepository: 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 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 = datetime.datetime.now()): + async def put_stats(self, user: User, stats_datetime: datetime.datetime): stats: UserStats = await user.fetch_stats() connection = self.__get_connection() @@ -77,7 +77,7 @@ class StatsRepository: cur.execute(query) connection.commit() - def get_stats(self, stats_datetime: datetime.datetime = datetime.datetime.now()) -> typing.List[UserStats]: + def get_stats(self, stats_datetime: datetime.datetime) -> typing.List[UserStats]: connection = self.__get_connection() cur = connection.cursor() query = "SELECT * FROM stats WHERE stats_datetime IN (SELECT MIN(stats_datetime) FROM stats WHERE stats_datetime >= '{stats_datetime}')".format(stats_datetime = stats_datetime) diff --git a/telegram_bot/commands.py b/telegram_bot/commands.py index 108f550..5d4a849 100644 --- a/telegram_bot/commands.py +++ b/telegram_bot/commands.py @@ -137,6 +137,7 @@ class RecordStatsCommand(CommandHandler): async def handle(self, message: telebot.types.Message): if self.__fortnite_client.is_initialized(): + stats_datetime = datetime.datetime.now() friends = await self.__fortnite_client.get_friends() for friend in friends: - await self.__stats_repository.put_stats(friend) \ No newline at end of file + await self.__stats_repository.put_stats(friend, stats_datetime) \ No newline at end of file -- cgit v1.2.3