同步新模板 schemas

This commit is contained in:
2025-04-15 01:58:19 +08:00
parent b78032b868
commit 1679576fb4
19 changed files with 267 additions and 167 deletions

View File

@@ -0,0 +1,12 @@
from pydantic import BaseModel
from ....typedefs import Number
from ..base import HistoryData
class History(BaseModel):
data: list[HistoryData]
split_interval: Number
min_tr: Number
max_tr: Number
offset: Number

View File

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

View File

@@ -0,0 +1,50 @@
from pydantic import BaseModel
from .......games.tetrio.api.typedefs import Rank
from ......typedefs import Number
from ....base import Base, People, Trending
from ...base import History
class User(People):
bio: str | None
class Multiplayer(BaseModel):
glicko: str
rd: Number
rank: Rank
tr: str
global_rank: Number
history: History
lpm: Number
pps: Number
lpm_trending: Trending
apm: Number
apl: Number
apm_trending: Trending
adpm: Number
vs: Number
adpl: Number
adpm_trending: Trending
app: Number
ci: Number
dspp: Number
dsps: Number
ge: Number
class Singleplayer(BaseModel):
sprint: str
blitz: str
class Info(Base):
user: User
multiplayer: Multiplayer
singleplayer: Singleplayer

View File

@@ -0,0 +1,19 @@
from pydantic import BaseModel
from .....typedefs import Number
from ...base import Base, People, Trending
class Data(BaseModel):
pps: Number
lpm: Number
lpm_trending: Trending
apm: Number
apl: Number
apm_trending: Trending
class Info(Base):
user: People
today: Data
historical: Data

View File

@@ -0,0 +1,40 @@
from pydantic import BaseModel, Field
from .....typedefs import Number
from ...base import People, Trending
from ..base import History
class Multiplayer(BaseModel):
history: History
lpm: Number
pps: Number
lpm_trending: Trending
apm: Number
apl: Number
apm_trending: Trending
adpm: Number
vs: Number
adpl: Number
adpm_trending: Trending
app: Number
ci: Number
dspp: Number
or_: Number = Field(serialization_alias='or')
ge: Number
class Singleplayer(BaseModel):
sprint: str
challenge: str
marathon: str
class Info(BaseModel):
user: People
multiplayer: Multiplayer
singleplayer: Singleplayer