From 115413a813a399e766176e04c1bfc9ce3ca1433c Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 24 Sep 2026 22:00:24 +0200 Subject: [PATCH] odstranenie odohranych kol za den zo statistik --- api/stats.py | 17 ++--------------- frontend/src/pages/admin/AdminStats.tsx | 2 -- tests/test_stats.py | 1 - 3 files changed, 2 insertions(+), 18 deletions(-) diff --git a/api/stats.py b/api/stats.py index 202ff36..2e6ab4f 100644 --- a/api/stats.py +++ b/api/stats.py @@ -12,7 +12,7 @@ from sqlalchemy import extract, func, or_, select from user_agents import parse as parse_ua from db.db import async_session -from db.models import Game, Guess, PageView, Player +from db.models import Game, PageView, Player # Konvencia na rozpoznanie botieho uctu (viz api.bots.BOT_PREFIX) -- drzana tu # lokalne, aby sa do statistickej cesty netahala rl vrstva (siet/numpy). @@ -190,7 +190,7 @@ async def _login_event_counts(session, column, exclude_empty=False) -> list: async def get_daily_stats(logged_in_only: bool = False) -> dict: """logged_in_only obmedzuje traffic-analyticke widgety (PageView) na zaznamy z eventu "login" (jediny event, ktory nesie player_id -- bezne - beacony ho neposielaju vobec). Herne metriky (games/players/rounds) su + beacony ho neposielaju vobec). Herne metriky (games/players) su uz zo svojej podstaty vzdy o prihlasenych uctoch, prepinac sa ich netyka. top_paths ostava vzdy pocitane zo vsetkych navstev bez ohladu na scope -- najnavstevovanejsie stranky maju zmysel len ako celok.""" @@ -269,18 +269,6 @@ async def get_daily_stats(logged_in_only: bool = False) -> dict: ) ).all() - rday = func.date(Game.created_at) - rounds_rows = ( - await session.execute( - select(rday.label("day"), func.count().label("n")) - .select_from(Guess) - .join(Game, Guess.game_id == Game.id) - .group_by(rday) - .order_by(rday.desc()) - .limit(_DAYS_WINDOW) - ) - ).all() - vday = func.date(PageView.created_at) pageview_q = select(vday.label("day"), func.count().label("n")) if logged_in_only: @@ -354,7 +342,6 @@ async def get_daily_stats(logged_in_only: bool = False) -> dict: "total_players": total_players, "unconfirmed_players": unconfirmed_players, "peak_hours": {int(r.h): r.n for r in peak_hours}, - "rounds_per_day": {str(r.day): r.n for r in rounds_rows}, "pageviews_per_day": {str(r.day): r.n for r in pageview_rows}, "visitors_per_day": {str(r.day): r.n for r in visitor_rows}, "pageviews_per_day_by_device": pageviews_per_day_by_device, diff --git a/frontend/src/pages/admin/AdminStats.tsx b/frontend/src/pages/admin/AdminStats.tsx index 900f704..1ce8c24 100644 --- a/frontend/src/pages/admin/AdminStats.tsx +++ b/frontend/src/pages/admin/AdminStats.tsx @@ -23,7 +23,6 @@ interface DailyStats { total_players: number; unconfirmed_players: number; peak_hours: Record; - rounds_per_day: Record; pageviews_per_day: Record; visitors_per_day: Record; pageviews_per_day_by_device: Record>; @@ -169,7 +168,6 @@ export default function AdminStats() {
-
diff --git a/tests/test_stats.py b/tests/test_stats.py index 62935e1..4a54e00 100644 --- a/tests/test_stats.py +++ b/tests/test_stats.py @@ -351,7 +351,6 @@ class StatsCase(unittest.TestCase): self.assertEqual(data["finished_bot_games"], base_bot_games + 1) self.assertEqual(data["finished_human_games"], base_human_games) self.assertGreaterEqual(sum(data["games_per_day"].values()), 1) - self.assertGreaterEqual(sum(data["rounds_per_day"].values()), 4) def test_unconfirmed_players_counted_separately(self): before = run(stats.get_daily_stats())