diff --git a/nonebot_plugin_tetris_stats/games/tetrio/record/blitz.py b/nonebot_plugin_tetris_stats/games/tetrio/record/blitz.py index 470eeae..69583d5 100644 --- a/nonebot_plugin_tetris_stats/games/tetrio/record/blitz.py +++ b/nonebot_plugin_tetris_stats/games/tetrio/record/blitz.py @@ -81,6 +81,7 @@ async def make_blitz_image(player: Player) -> bytes: page=await render( 'v2/tetrio/record/blitz', Record( + type='personal_best', user=User( id=user.ID, name=user.name.upper(), @@ -93,6 +94,7 @@ async def make_blitz_image(player: Player) -> bytes: ), replay_id=blitz.data.record.replayid, rank=blitz.data.rank, + personal_rank=1, statistic=Statistic( keys=stats.inputs, kpp=round(stats.inputs / stats.piecesplaced, 2), diff --git a/nonebot_plugin_tetris_stats/games/tetrio/record/sprint.py b/nonebot_plugin_tetris_stats/games/tetrio/record/sprint.py index 2d1968d..5a9dff8 100644 --- a/nonebot_plugin_tetris_stats/games/tetrio/record/sprint.py +++ b/nonebot_plugin_tetris_stats/games/tetrio/record/sprint.py @@ -18,8 +18,8 @@ from ....utils.host import HostPage, get_self_netloc from ....utils.metrics import get_metrics from ....utils.render import render from ....utils.render.schemas.base import Avatar -from ....utils.render.schemas.tetrio.tetrio_record_base import Finesse, Max, Mini, Tspins, User -from ....utils.render.schemas.tetrio.tetrio_record_sprint import Record, Statistic +from ....utils.render.schemas.tetrio.tetrio_record_base import Finesse, Max, Mini, Statistic, Tspins, User +from ....utils.render.schemas.tetrio.tetrio_record_sprint import Record from ....utils.screenshot import screenshot from ....utils.typing import Me from ...constant import CANT_VERIFY_MESSAGE @@ -82,6 +82,7 @@ async def make_sprint_image(player: Player) -> bytes: page=await render( 'v2/tetrio/record/40l', Record( + type='personal_best', user=User( id=user.ID, name=user.name.upper(), @@ -95,6 +96,7 @@ async def make_sprint_image(player: Player) -> bytes: time=sprint_value, replay_id=sprint.data.record.replayid, rank=sprint.data.rank, + personal_rank=1, statistic=Statistic( keys=stats.inputs, kpp=round(stats.inputs / stats.piecesplaced, 2), diff --git a/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_base.py b/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_base.py index 9b1f988..7a5d6f8 100644 --- a/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_base.py +++ b/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_base.py @@ -1,3 +1,6 @@ +from datetime import datetime +from typing import Literal + from pydantic import BaseModel from ..base import People @@ -32,7 +35,7 @@ class Finesse(BaseModel): accuracy: float -class RecordStatistic(BaseModel): +class Statistic(BaseModel): keys: int kpp: float kps: float @@ -56,3 +59,17 @@ class RecordStatistic(BaseModel): all_clear: int finesse: Finesse + + +class Record(BaseModel): + type: Literal['best', 'personal_best', 'recent', 'disputed'] + + user: User + + replay_id: str + rank: int | None + personal_rank: int | None + + statistic: Statistic + + play_at: datetime diff --git a/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_blitz.py b/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_blitz.py index d584b2c..d95b86e 100644 --- a/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_blitz.py +++ b/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_blitz.py @@ -1,22 +1,12 @@ -from datetime import datetime - -from pydantic import BaseModel - -from .tetrio_record_base import RecordStatistic, User +from .tetrio_record_base import Record as BaseRecord +from .tetrio_record_base import Statistic as BaseStatistic -class Statistic(RecordStatistic): +class Statistic(BaseStatistic): spp: float level: int -class Record(BaseModel): - user: User - - replay_id: str - rank: int | None - +class Record(BaseRecord): statistic: Statistic - - play_at: datetime diff --git a/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_sprint.py b/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_sprint.py index 57af55f..4f5a090 100644 --- a/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_sprint.py +++ b/nonebot_plugin_tetris_stats/utils/render/schemas/tetrio/tetrio_record_sprint.py @@ -1,18 +1,5 @@ -from datetime import datetime - -from pydantic import BaseModel - -from .tetrio_record_base import RecordStatistic as Statistic -from .tetrio_record_base import User +from .tetrio_record_base import Record as BaseRecord -class Record(BaseModel): - user: User - +class Record(BaseRecord): time: str - replay_id: str - rank: int | None - - statistic: Statistic - - play_at: datetime