更新模板

This commit is contained in:
2025-04-21 13:03:44 +08:00
parent 86198df4ed
commit a27b8826c8
10 changed files with 29 additions and 48 deletions

View File

@@ -4,6 +4,7 @@ from jinja2 import Environment, FileSystemLoader
from nonebot.compat import PYDANTIC_V2
from ..templates import TEMPLATES_DIR
from .schemas.base import Base
from .schemas.bind import Bind
from .schemas.v1.tetrio.rank import Data as TETRIORankDataV1
from .schemas.v1.tetrio.user.info import Info as TETRIOUserInfoV1
@@ -15,7 +16,7 @@ from .schemas.v2.tetrio.record.blitz import Record as TETRIORecordBlitzV2
from .schemas.v2.tetrio.record.sprint import Record as TETRIORecordSprintV2
from .schemas.v2.tetrio.tetra_league import Data as TETRIOTetraLeagueDataV2
from .schemas.v2.tetrio.user.info import Info as TETRIOUserInfoV2
from .schemas.v2.tetrio.user.list import Data as TETRIOUserListV2
from .schemas.v2.tetrio.user.list import List as TETRIOUserListV2
env = Environment(
loader=FileSystemLoader(TEMPLATES_DIR),
@@ -50,35 +51,9 @@ async def render(render_type: Literal['v2/tetrio/tetra-league'], data: TETRIOTet
async def render(render_type: Literal['v2/tetrio/user/info'], data: TETRIOUserInfoV2) -> str: ...
@overload
async def render(render_type: Literal['v2/tetrio/user/list'], data: TETRIOUserListV2) -> str: ...
async def render(
render_type: Literal[
'v1/binding',
'v1/tetrio/info',
'v1/tetrio/rank',
'v1/top/info',
'v1/tos/info',
'v2/tetrio/rank',
'v2/tetrio/rank/detail',
'v2/tetrio/record/blitz',
'v2/tetrio/record/sprint',
'v2/tetrio/tetra-league',
'v2/tetrio/user/info',
'v2/tetrio/user/list',
],
data: Bind
| TETRIOUserInfoV1
| TETRIORankDataV1
| TOPInfoV1
| TOSInfoV1
| TETRIORankDataV2
| TETRIORankDetailDataV2
| TETRIORecordBlitzV2
| TETRIORecordSprintV2
| TETRIOTetraLeagueDataV2
| TETRIOUserInfoV2
| TETRIOUserListV2,
render_type: str,
data: Base,
) -> str:
if PYDANTIC_V2:
return await env.get_template('index.html').render_async(

View File

@@ -7,6 +7,6 @@ from ..base import HistoryData
class History(BaseModel):
data: list[HistoryData]
split_interval: Number
min_tr: Number
max_tr: Number
min_value: Number
max_value: Number
offset: Number

View File

@@ -3,6 +3,7 @@ from datetime import datetime
from pydantic import BaseModel
from ......games.tetrio.api.typedefs import ValidRank
from ...base import Base
class ItemData(BaseModel):
@@ -11,6 +12,6 @@ class ItemData(BaseModel):
players: int
class Data(BaseModel):
class Data(Base):
items: dict[ValidRank, ItemData]
updated_at: datetime

View File

@@ -1,12 +1,14 @@
from pydantic import BaseModel, Field
from .....typedefs import Number
from ...base import People, Trending
from ...base import Base, People, Trending
from ..base import History
class Multiplayer(BaseModel):
history: History
rating: Number
rd: Number
lpm: Number
pps: Number
@@ -34,7 +36,7 @@ class Singleplayer(BaseModel):
marathon: str
class Info(BaseModel):
class Info(Base):
user: People
multiplayer: Multiplayer
singleplayer: Singleplayer

View File

@@ -4,6 +4,7 @@ from pydantic import BaseModel
from .......games.tetrio.api.typedefs import ValidRank
from ......typedefs import Number
from ....base import Base
class AverageData(BaseModel):
@@ -21,6 +22,6 @@ class ItemData(BaseModel):
players: Number
class Data(BaseModel):
class Data(Base):
items: dict[ValidRank, ItemData]
updated_at: datetime

View File

@@ -4,6 +4,7 @@ from pydantic import BaseModel
from .......games.tetrio.api.typedefs import ValidRank
from ......typedefs import Number
from ....base import Base
class SpecialData(BaseModel):
@@ -19,7 +20,7 @@ class SpecialData(BaseModel):
vs_holder: str | None = None
class Data(BaseModel):
class Data(Base):
name: ValidRank
trending: Number
require_tr: Number

View File

@@ -3,7 +3,7 @@ from typing import Literal
from pydantic import BaseModel
from ....base import People
from ....base import Base, People
class User(People):
@@ -61,7 +61,7 @@ class Statistic(BaseModel):
finesse: Finesse
class Record(BaseModel):
class Record(Base):
type: Literal['best', 'personal_best', 'recent', 'disputed']
user: User

View File

@@ -3,6 +3,7 @@ from datetime import datetime
from pydantic import BaseModel
from .....typedefs import Number
from ...base import Base
class StatisticalData(BaseModel):
@@ -32,7 +33,7 @@ class Game(BaseModel):
handling: Handling
class Data(BaseModel):
class Data(Base):
replay_id: str
games: list[Game]
play_at: datetime

View File

@@ -5,7 +5,7 @@ from pydantic import BaseModel
from .......games.tetrio.api.typedefs import Rank
from ......typedefs import Number
from ....base import Avatar, HistoryData
from ....base import Avatar, Base, HistoryData
class Badge(BaseModel):
@@ -37,7 +37,7 @@ class User(BaseModel):
xp: Number
ar: Number
achievements: list[Number]
achievements: list[int]
playtime: str | None
join_at: datetime | None
@@ -100,24 +100,24 @@ class Zen(BaseModel):
class Week(BaseModel):
altitude: int
altitude: Number
global_rank: int | None
country_rank: int | None
play_at: datetime
class Best(BaseModel):
altitude: int
altitude: Number
global_rank: int | None
play_at: datetime
class Zenith(BaseModel):
week: Week
best: Best
week: Week | None
best: Best | None
class Info(BaseModel):
class Info(Base):
user: User
tetra_league: TetraLeague | None
zenith: Zenith | None

View File

@@ -2,7 +2,7 @@ from pydantic import BaseModel
from .......games.tetrio.api.typedefs import Rank
from ......typedefs import Number
from ....base import Avatar
from ....base import Avatar, Base
class TetraLeague(BaseModel):
@@ -33,6 +33,6 @@ class Data(BaseModel):
tetra_league: TetraLeague
class List(BaseModel):
class List(Base):
show_index: bool
data: list[Data]