mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
✨ AR排行榜 API 模型
This commit is contained in:
@@ -4,6 +4,12 @@ from typing import Literal
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
class P(BaseModel): # what is P
|
||||||
|
pri: float
|
||||||
|
sec: float
|
||||||
|
ter: float
|
||||||
|
|
||||||
|
|
||||||
class Cache(BaseModel):
|
class Cache(BaseModel):
|
||||||
status: str
|
status: str
|
||||||
cached_at: datetime
|
cached_at: datetime
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
from ..base import SuccessModel
|
||||||
|
from .base import Entry as BaseEntry
|
||||||
|
|
||||||
|
|
||||||
|
class ArCounts(BaseModel):
|
||||||
|
bronze: int | None = Field(None, alias='1')
|
||||||
|
silver: int | None = Field(None, alias='2')
|
||||||
|
gold: int | None = Field(None, alias='3')
|
||||||
|
platinum: int | None = Field(None, alias='4')
|
||||||
|
diamond: int | None = Field(None, alias='5')
|
||||||
|
issued: int | None = Field(None, alias='100')
|
||||||
|
top10: int | None = Field(None, alias='t10')
|
||||||
|
|
||||||
|
|
||||||
|
class Entry(BaseEntry):
|
||||||
|
ar: int
|
||||||
|
ar_counts: ArCounts
|
||||||
|
|
||||||
|
|
||||||
|
class Data(BaseModel):
|
||||||
|
entries: list[Entry]
|
||||||
|
|
||||||
|
|
||||||
|
class ArSuccessModel(SuccessModel):
|
||||||
|
data: Data
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
from ...typing import Rank
|
||||||
|
from ..base import P
|
||||||
|
|
||||||
|
|
||||||
|
class League(BaseModel):
|
||||||
|
gamesplayed: int
|
||||||
|
gameswon: int
|
||||||
|
rating: int
|
||||||
|
rank: Rank
|
||||||
|
decaying: bool
|
||||||
|
|
||||||
|
|
||||||
|
class Entry(BaseModel):
|
||||||
|
id: str = Field(..., alias='_id')
|
||||||
|
username: str
|
||||||
|
role: str
|
||||||
|
xp: float
|
||||||
|
league: League
|
||||||
|
supporter: bool | None = None
|
||||||
|
verified: bool
|
||||||
|
country: str | None = None
|
||||||
|
ts: datetime
|
||||||
|
gamesplayed: int
|
||||||
|
gameswon: int
|
||||||
|
gametime: float
|
||||||
|
p: P
|
||||||
@@ -1,34 +1,7 @@
|
|||||||
from datetime import datetime
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from pydantic import BaseModel, Field
|
|
||||||
|
|
||||||
from ...typing import Rank
|
|
||||||
from ..base import SuccessModel
|
from ..base import SuccessModel
|
||||||
from ..summaries.base import P
|
from .base import Entry
|
||||||
|
|
||||||
|
|
||||||
class League(BaseModel):
|
|
||||||
gamesplayed: int
|
|
||||||
gameswon: int
|
|
||||||
rating: int
|
|
||||||
rank: Rank
|
|
||||||
decaying: bool
|
|
||||||
|
|
||||||
|
|
||||||
class Entry(BaseModel):
|
|
||||||
id: str = Field(..., alias='_id')
|
|
||||||
username: str
|
|
||||||
role: str
|
|
||||||
xp: float
|
|
||||||
league: League
|
|
||||||
supporter: bool | None = None
|
|
||||||
verified: bool
|
|
||||||
country: str | None = None
|
|
||||||
ts: datetime
|
|
||||||
gamesplayed: int
|
|
||||||
gameswon: int
|
|
||||||
gametime: float
|
|
||||||
p: P
|
|
||||||
|
|
||||||
|
|
||||||
class Data(BaseModel):
|
class Data(BaseModel):
|
||||||
|
|||||||
@@ -21,9 +21,3 @@ class Finesse(BaseModel):
|
|||||||
combo: int
|
combo: int
|
||||||
faults: int
|
faults: int
|
||||||
perfectpieces: int
|
perfectpieces: int
|
||||||
|
|
||||||
|
|
||||||
class P(BaseModel): # what is P
|
|
||||||
pri: float
|
|
||||||
sec: float
|
|
||||||
ter: float
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ from typing import Literal, TypeAlias
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from ..base import FailedModel, SuccessModel
|
from ..base import FailedModel, P, SuccessModel
|
||||||
from .base import AggregateStats, Finesse, P, User
|
from .base import AggregateStats, Finesse, User
|
||||||
|
|
||||||
|
|
||||||
class Time(BaseModel):
|
class Time(BaseModel):
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ from typing import Literal, TypeAlias
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from ..base import FailedModel, SuccessModel
|
from ..base import FailedModel, P, SuccessModel
|
||||||
from .base import AggregateStats, Finesse, P, User
|
from .base import AggregateStats, Finesse, User
|
||||||
|
|
||||||
|
|
||||||
class Clears(BaseModel):
|
class Clears(BaseModel):
|
||||||
|
|||||||
Reference in New Issue
Block a user