fix(beatmapset): load beatmapset from database

This commit is contained in:
MingxuanGame
2025-10-07 17:55:35 +00:00
parent c0575f3274
commit b4e164faad

View File

@@ -186,9 +186,22 @@ class BeatmapsetUpdateService:
async with with_db() as session: async with with_db() as session:
sync_record = await session.get(BeatmapSync, beatmapset.id) sync_record = await session.get(BeatmapSync, beatmapset.id)
if not sync_record: if not sync_record:
sync_record = BeatmapSync( database_beatmapset = await session.get(Beatmapset, beatmapset.id)
beatmapset_id=beatmapset.id, if database_beatmapset:
beatmaps=[ status = BeatmapRankStatus(database_beatmapset.beatmap_status)
await database_beatmapset.awaitable_attrs.beatmaps
beatmaps = [
SavedBeatmapMeta(
beatmap_id=bm.id,
md5=bm.checksum,
is_deleted=False,
beatmap_status=BeatmapRankStatus(bm.beatmap_status),
)
for bm in database_beatmapset.beatmaps
]
else:
status = BeatmapRankStatus(beatmapset.ranked)
beatmaps = [
SavedBeatmapMeta( SavedBeatmapMeta(
beatmap_id=bm.id, beatmap_id=bm.id,
md5=bm.checksum, md5=bm.checksum,
@@ -196,8 +209,12 @@ class BeatmapsetUpdateService:
beatmap_status=BeatmapRankStatus(bm.ranked), beatmap_status=BeatmapRankStatus(bm.ranked),
) )
for bm in beatmapset.beatmaps for bm in beatmapset.beatmaps
], ]
beatmap_status=BeatmapRankStatus(beatmapset.ranked),
sync_record = BeatmapSync(
beatmapset_id=beatmapset.id,
beatmaps=beatmaps,
beatmap_status=status,
) )
session.add(sync_record) session.add(sync_record)
await session.commit() await session.commit()