适配 TETR.IO rank v1 模板

This commit is contained in:
2024-08-02 22:00:40 +08:00
parent 820393f216
commit 71ad53a1f9
3 changed files with 24 additions and 3 deletions

View File

@@ -6,8 +6,9 @@ from nonebot.compat import PYDANTIC_V2
from ..templates import templates_dir from ..templates import templates_dir
from .schemas.bind import Bind from .schemas.bind import Bind
from .schemas.tetrio.tetrio_info import Info as TETRIOInfo from .schemas.tetrio.tetrio_info import Info as TETRIOInfo
from .schemas.tetrio.tetrio_rank import Data as TETRIORankData
from .schemas.tetrio.tetrio_rank_detail import Data as TETRIORankDetailData from .schemas.tetrio.tetrio_rank_detail import Data as TETRIORankDetailData
from .schemas.tetrio.tetrio_rank_v1 import Data as TETRIORankDataV1
from .schemas.tetrio.tetrio_rank_v2 import Data as TETRIORankDataV2
from .schemas.tetrio.tetrio_record_blitz import Record as TETRIORecordBlitz from .schemas.tetrio.tetrio_record_blitz import Record as TETRIORecordBlitz
from .schemas.tetrio.tetrio_record_sprint import Record as TETRIORecordSprint from .schemas.tetrio.tetrio_record_sprint import Record as TETRIORecordSprint
from .schemas.tetrio.tetrio_user_info_v2 import Info as TETRIOUserInfoV2 from .schemas.tetrio.tetrio_user_info_v2 import Info as TETRIOUserInfoV2
@@ -25,6 +26,8 @@ async def render(render_type: Literal['v1/binding'], data: Bind) -> str: ...
@overload @overload
async def render(render_type: Literal['v1/tetrio/info'], data: TETRIOInfo) -> str: ... async def render(render_type: Literal['v1/tetrio/info'], data: TETRIOInfo) -> str: ...
@overload @overload
async def render(render_type: Literal['v1/tetrio/rank'], data: TETRIORankDataV1) -> str: ...
@overload
async def render(render_type: Literal['v1/top/info'], data: TOPInfo) -> str: ... async def render(render_type: Literal['v1/top/info'], data: TOPInfo) -> str: ...
@overload @overload
async def render(render_type: Literal['v1/tos/info'], data: TOSInfo) -> str: ... async def render(render_type: Literal['v1/tos/info'], data: TOSInfo) -> str: ...
@@ -37,7 +40,7 @@ async def render(render_type: Literal['v2/tetrio/record/40l'], data: TETRIORecor
@overload @overload
async def render(render_type: Literal['v2/tetrio/record/blitz'], data: TETRIORecordBlitz) -> str: ... async def render(render_type: Literal['v2/tetrio/record/blitz'], data: TETRIORecordBlitz) -> str: ...
@overload @overload
async def render(render_type: Literal['v2/tetrio/rank'], data: TETRIORankData) -> str: ... async def render(render_type: Literal['v2/tetrio/rank'], data: TETRIORankDataV2) -> str: ...
@overload @overload
async def render(render_type: Literal['v2/tetrio/rank/detail'], data: TETRIORankDetailData) -> str: ... async def render(render_type: Literal['v2/tetrio/rank/detail'], data: TETRIORankDetailData) -> str: ...
@@ -46,6 +49,7 @@ async def render(
render_type: Literal[ render_type: Literal[
'v1/binding', 'v1/binding',
'v1/tetrio/info', 'v1/tetrio/info',
'v1/tetrio/rank',
'v1/top/info', 'v1/top/info',
'v1/tos/info', 'v1/tos/info',
'v2/tetrio/user/info', 'v2/tetrio/user/info',
@@ -57,13 +61,14 @@ async def render(
], ],
data: Bind data: Bind
| TETRIOInfo | TETRIOInfo
| TETRIORankDataV1
| TOPInfo | TOPInfo
| TOSInfo | TOSInfo
| TETRIOUserInfoV2 | TETRIOUserInfoV2
| TETRIOUserListV2 | TETRIOUserListV2
| TETRIORecordSprint | TETRIORecordSprint
| TETRIORecordBlitz | TETRIORecordBlitz
| TETRIORankData | TETRIORankDataV2
| TETRIORankDetailData, | TETRIORankDetailData,
) -> str: ) -> str:
if PYDANTIC_V2: if PYDANTIC_V2:

View File

@@ -0,0 +1,16 @@
from datetime import datetime
from pydantic import BaseModel
from .....games.tetrio.api.typing import ValidRank
class ItemData(BaseModel):
trending: float
require_tr: float
players: int
class Data(BaseModel):
items: dict[ValidRank, ItemData]
updated_at: datetime