feat(beatmap,score): update beatmaps from Bancho & deleting scores (#50)
New API:
- DELETE /api/private/score/{score_id}: delete a score
- POST /api/private/beatmapsets/{beatmapset_id}/sync: request for syncing a beatmapset
New configuration:
- OLD_SCORE_PROCESSING_MODE
This commit is contained in:
23
app/database/beatmap_sync.py
Normal file
23
app/database/beatmap_sync.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from datetime import datetime
|
||||
from typing import TypedDict
|
||||
|
||||
from app.models.beatmap import BeatmapRankStatus
|
||||
from app.utils import utcnow
|
||||
|
||||
from sqlmodel import JSON, Column, DateTime, Field, SQLModel
|
||||
|
||||
|
||||
class SavedBeatmapMeta(TypedDict):
|
||||
beatmap_id: int
|
||||
md5: str
|
||||
is_deleted: bool
|
||||
beatmap_status: BeatmapRankStatus
|
||||
|
||||
|
||||
class BeatmapSync(SQLModel, table=True):
|
||||
beatmapset_id: int = Field(primary_key=True, foreign_key="beatmapsets.id")
|
||||
beatmaps: list[SavedBeatmapMeta] = Field(sa_column=Column(JSON))
|
||||
beatmap_status: BeatmapRankStatus = Field(index=True)
|
||||
consecutive_no_change: int = Field(default=0)
|
||||
next_sync_time: datetime = Field(default_factory=utcnow, sa_column=Column(DateTime, index=True))
|
||||
updated_at: datetime = Field(default_factory=utcnow, sa_column=Column(DateTime, index=True))
|
||||
Reference in New Issue
Block a user