From 02051289e973e4cbe36a91dcc7828b770e6869fc Mon Sep 17 00:00:00 2001 From: MingxuanGame Date: Sun, 10 Aug 2025 11:35:41 +0000 Subject: [PATCH] fix(statistics): extra pp from other modes --- app/database/score.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/database/score.py b/app/database/score.py index ea1ccf2..6b418bb 100644 --- a/app/database/score.py +++ b/app/database/score.py @@ -485,12 +485,13 @@ async def get_user_best_pp_in_beatmap( async def get_user_best_pp( session: AsyncSession, user: int, + mode: GameMode, limit: int = 200, ) -> Sequence[PPBestScore]: return ( await session.exec( select(PPBestScore) - .where(PPBestScore.user_id == user) + .where(PPBestScore.user_id == user, PPBestScore.gamemode == mode) .order_by(col(PPBestScore.pp).desc()) .limit(limit) ) @@ -612,7 +613,7 @@ async def process_user( ) if score.passed and ranked: - best_pp_scores = await get_user_best_pp(session, user.id) + best_pp_scores = await get_user_best_pp(session, user.id, score.gamemode) pp_sum = 0.0 acc_sum = 0.0 for i, bp in enumerate(best_pp_scores):