From b5b14f5466d7829ed6678e07dcaecf21f7e8371c Mon Sep 17 00:00:00 2001 From: MingxuanGame Date: Mon, 18 Aug 2025 12:49:06 +0000 Subject: [PATCH] fix(score): cannot fetch leaderboard with mods --- app/database/lazer_user.py | 2 +- app/database/score.py | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/database/lazer_user.py b/app/database/lazer_user.py index 758ec94..d3747f7 100644 --- a/app/database/lazer_user.py +++ b/app/database/lazer_user.py @@ -2,7 +2,6 @@ from datetime import UTC, datetime, timedelta import json from typing import TYPE_CHECKING, NotRequired, TypedDict -from app.database.pp_best_score import PPBestScore from app.models.model import UTCBaseModel from app.models.score import GameMode from app.models.user import Country, Page @@ -265,6 +264,7 @@ class UserResp(UserBase): from .best_score import BestScore from .favourite_beatmapset import FavouriteBeatmapset + from .pp_best_score import PPBestScore from .relationship import Relationship, RelationshipResp, RelationshipType from .score import Score diff --git a/app/database/score.py b/app/database/score.py index 025cf29..f0d1adb 100644 --- a/app/database/score.py +++ b/app/database/score.py @@ -314,7 +314,7 @@ async def _score_where( text( "JSON_CONTAINS(total_score_best_scores.mods, :w)" " AND JSON_CONTAINS(:w, total_score_best_scores.mods)" - ) # pyright: ignore[reportArgumentType] + ).params(w=json.dumps(mods)) # pyright: ignore[reportArgumentType] ) else: return None @@ -346,8 +346,6 @@ async def get_leaderboard( .limit(limit) .order_by(col(BestScore.total_score).desc()) ) - if mods: - query = query.params(w=json.dumps(mods)) extra_need = 0 for s in await session.exec(query): if s.user_id in scores: