fix(spectator): wrong converted gamemode written into replay

This commit is contained in:
MingxuanGame
2025-07-27 11:47:09 +00:00
parent 589927a300
commit e34e35caf1
2 changed files with 4 additions and 5 deletions

View File

@@ -7,7 +7,6 @@ from typing import Any
from app.models.beatmap import BeatmapRankStatus from app.models.beatmap import BeatmapRankStatus
from .score import ( from .score import (
GameMode,
ScoreStatisticsInt, ScoreStatisticsInt,
) )
from .signalr import MessagePackArrayModel from .signalr import MessagePackArrayModel
@@ -139,7 +138,7 @@ class StoreClientState(BaseModel):
state: SpectatorState | None state: SpectatorState | None
beatmap_status: BeatmapRankStatus beatmap_status: BeatmapRankStatus
checksum: str checksum: str
gamemode: GameMode ruleset_id: int
score_token: int score_token: int
watched_user: set[int] watched_user: set[int]
score: StoreScore score: StoreScore

View File

@@ -12,7 +12,7 @@ from app.database.user import User
from app.dependencies.database import engine from app.dependencies.database import engine
from app.models.beatmap import BeatmapRankStatus from app.models.beatmap import BeatmapRankStatus
from app.models.mods import mods_to_int from app.models.mods import mods_to_int
from app.models.score import MODE_TO_INT, LegacyReplaySoloScoreInfo, ScoreStatisticsInt from app.models.score import LegacyReplaySoloScoreInfo, ScoreStatisticsInt
from app.models.spectator_hub import ( from app.models.spectator_hub import (
APIUser, APIUser,
FrameDataBundle, FrameDataBundle,
@@ -171,7 +171,7 @@ class SpectatorHub(Hub):
state=state, state=state,
beatmap_status=beatmap.beatmap_status, beatmap_status=beatmap.beatmap_status,
checksum=beatmap.checksum, checksum=beatmap.checksum,
gamemode=beatmap.mode, ruleset_id=state.ruleset_id,
score_token=score_token, score_token=score_token,
watched_user=set(), watched_user=set(),
score=StoreScore( score=StoreScore(
@@ -245,7 +245,7 @@ class SpectatorHub(Hub):
await session.commit() await session.commit()
await session.refresh(score_record) await session.refresh(score_record)
save_replay( save_replay(
ruleset_id=MODE_TO_INT[store.gamemode], ruleset_id=store.ruleset_id,
md5=store.checksum, md5=store.checksum,
username=store.score.score_info.user.name, username=store.score.score_info.user.name,
score=score_record, score=score_record,