mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
✨ 适配 Pydantic V2
This commit is contained in:
@@ -28,20 +28,20 @@ class SuccessModel(BaseSuccessModel):
|
|||||||
league: League
|
league: League
|
||||||
supporter: bool
|
supporter: bool
|
||||||
verified: bool
|
verified: bool
|
||||||
country: str | None
|
country: str | None = None
|
||||||
|
|
||||||
class InvalidUser(BaseModel):
|
class InvalidUser(BaseModel):
|
||||||
class League(BaseModel):
|
class League(BaseModel):
|
||||||
gamesplayed: int
|
gamesplayed: int
|
||||||
gameswon: int
|
gameswon: int
|
||||||
rating: float
|
rating: float
|
||||||
glicko: float | None
|
glicko: float | None = None
|
||||||
rd: float | None
|
rd: float | None = None
|
||||||
rank: Rank
|
rank: Rank
|
||||||
bestrank: Rank
|
bestrank: Rank
|
||||||
apm: float | None
|
apm: float | None = None
|
||||||
pps: float | None
|
pps: float | None = None
|
||||||
vs: float | None
|
vs: float | None = None
|
||||||
decaying: bool
|
decaying: bool
|
||||||
|
|
||||||
id: str = Field(..., alias='_id')
|
id: str = Field(..., alias='_id')
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class SuccessModel(BaseSuccessModel):
|
|||||||
class Badge(BaseModel):
|
class Badge(BaseModel):
|
||||||
id: str
|
id: str
|
||||||
label: str
|
label: str
|
||||||
ts: datetime | None
|
ts: datetime | None = None
|
||||||
|
|
||||||
class NeverPlayedLeague(BaseModel):
|
class NeverPlayedLeague(BaseModel):
|
||||||
gamesplayed: Literal[0]
|
gamesplayed: Literal[0]
|
||||||
@@ -60,8 +60,8 @@ class SuccessModel(BaseSuccessModel):
|
|||||||
bestrank: Rank
|
bestrank: Rank
|
||||||
standing: int
|
standing: int
|
||||||
standing_local: int
|
standing_local: int
|
||||||
next_rank: Rank | None
|
next_rank: Rank | None = None
|
||||||
prev_rank: Rank | None
|
prev_rank: Rank | None = None
|
||||||
next_at: int
|
next_at: int
|
||||||
prev_at: int
|
prev_at: int
|
||||||
percentile: float
|
percentile: float
|
||||||
@@ -70,7 +70,7 @@ class SuccessModel(BaseSuccessModel):
|
|||||||
rd: float
|
rd: float
|
||||||
apm: float
|
apm: float
|
||||||
pps: float
|
pps: float
|
||||||
vs: float | None
|
vs: float | None = None
|
||||||
decaying: bool
|
decaying: bool
|
||||||
|
|
||||||
class Connections(BaseModel):
|
class Connections(BaseModel):
|
||||||
@@ -78,7 +78,7 @@ class SuccessModel(BaseSuccessModel):
|
|||||||
id: str
|
id: str
|
||||||
username: str
|
username: str
|
||||||
|
|
||||||
discord: Discord | None
|
discord: Discord | None = None
|
||||||
|
|
||||||
class Distinguishment(BaseModel):
|
class Distinguishment(BaseModel):
|
||||||
type: str
|
type: str
|
||||||
@@ -86,33 +86,33 @@ class SuccessModel(BaseSuccessModel):
|
|||||||
id: str = Field(..., alias='_id')
|
id: str = Field(..., alias='_id')
|
||||||
username: str
|
username: str
|
||||||
role: Literal['anon', 'user', 'bot', 'halfmod', 'mod', 'admin', 'sysop', 'banned']
|
role: Literal['anon', 'user', 'bot', 'halfmod', 'mod', 'admin', 'sysop', 'banned']
|
||||||
ts: datetime | None
|
ts: datetime | None = None
|
||||||
botmaster: str | None
|
botmaster: str | None = None
|
||||||
badges: list[Badge]
|
badges: list[Badge]
|
||||||
xp: float
|
xp: float
|
||||||
gamesplayed: int
|
gamesplayed: int
|
||||||
gameswon: int
|
gameswon: int
|
||||||
gametime: float
|
gametime: float
|
||||||
country: str | None
|
country: str | None = None
|
||||||
badstanding: bool | None
|
badstanding: bool | None = None
|
||||||
supporter: bool | None # osk说是必有, 但实际上不是 fk osk
|
supporter: bool | None = None # osk说是必有, 但实际上不是 fk osk
|
||||||
supporter_tier: int
|
supporter_tier: int
|
||||||
verified: bool
|
verified: bool
|
||||||
league: NeverPlayedLeague | NeverRatedLeague | RatedLeague
|
league: NeverPlayedLeague | NeverRatedLeague | RatedLeague
|
||||||
avatar_revision: int | None
|
avatar_revision: int | None = None
|
||||||
"""This user's avatar ID. Get their avatar at
|
"""This user's avatar ID. Get their avatar at
|
||||||
|
|
||||||
https://tetr.io/user-content/avatars/{ USERID }.jpg?rv={ AVATAR_REVISION }"""
|
https://tetr.io/user-content/avatars/{ USERID }.jpg?rv={ AVATAR_REVISION }"""
|
||||||
banner_revision: int | None
|
banner_revision: int | None = None
|
||||||
"""This user's banner ID. Get their banner at
|
"""This user's banner ID. Get their banner at
|
||||||
|
|
||||||
https://tetr.io/user-content/banners/{ USERID }.jpg?rv={ BANNER_REVISION }
|
https://tetr.io/user-content/banners/{ USERID }.jpg?rv={ BANNER_REVISION }
|
||||||
|
|
||||||
Ignore this field if the user is not a supporter."""
|
Ignore this field if the user is not a supporter."""
|
||||||
bio: str | None
|
bio: str | None = None
|
||||||
connections: Connections
|
connections: Connections
|
||||||
friend_count: int | None
|
friend_count: int | None = None
|
||||||
distinguishment: Distinguishment | None
|
distinguishment: Distinguishment | None = None
|
||||||
|
|
||||||
user: User
|
user: User
|
||||||
|
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ class EndContext(BaseModel):
|
|||||||
zero: bool
|
zero: bool
|
||||||
locked: bool
|
locked: bool
|
||||||
prev: int
|
prev: int
|
||||||
frameoffset: int | None
|
frameoffset: int | None = None
|
||||||
|
|
||||||
class Clears(BaseModel):
|
class Clears(BaseModel):
|
||||||
singles: int
|
singles: int
|
||||||
doubles: int
|
doubles: int
|
||||||
triples: int
|
triples: int
|
||||||
quads: int
|
quads: int
|
||||||
pentas: int | None
|
pentas: int | None = None
|
||||||
realtspins: int
|
realtspins: int
|
||||||
minitspins: int
|
minitspins: int
|
||||||
minitspinsingles: int
|
minitspinsingles: int
|
||||||
@@ -33,7 +33,7 @@ class EndContext(BaseModel):
|
|||||||
class Garbage(BaseModel):
|
class Garbage(BaseModel):
|
||||||
sent: int
|
sent: int
|
||||||
received: int
|
received: int
|
||||||
attack: int | None
|
attack: int | None = None
|
||||||
cleared: int
|
cleared: int
|
||||||
|
|
||||||
class Finesse(BaseModel):
|
class Finesse(BaseModel):
|
||||||
@@ -46,18 +46,18 @@ class EndContext(BaseModel):
|
|||||||
level_lines: int
|
level_lines: int
|
||||||
level_lines_needed: int
|
level_lines_needed: int
|
||||||
inputs: int
|
inputs: int
|
||||||
holds: int | None
|
holds: int | None = None
|
||||||
time: Time
|
time: Time
|
||||||
score: int
|
score: int
|
||||||
zenlevel: int | None
|
zenlevel: int | None = None
|
||||||
zenprogress: int | None
|
zenprogress: int | None = None
|
||||||
level: int
|
level: int
|
||||||
combo: int
|
combo: int
|
||||||
currentcombopower: int | None # WTF
|
currentcombopower: int | None = None # WTF
|
||||||
topcombo: int
|
topcombo: int
|
||||||
btb: int
|
btb: int
|
||||||
topbtb: int
|
topbtb: int
|
||||||
currentbtbchainpower: int | None # WTF * 2
|
currentbtbchainpower: int | None = None # WTF * 2
|
||||||
tspins: int
|
tspins: int
|
||||||
piecesplaced: int
|
piecesplaced: int
|
||||||
clears: Clears
|
clears: Clears
|
||||||
@@ -79,7 +79,7 @@ class BaseModeRecord(BaseModel):
|
|||||||
replayid: str
|
replayid: str
|
||||||
user: User
|
user: User
|
||||||
ts: datetime
|
ts: datetime
|
||||||
ismulti: bool | None
|
ismulti: bool | None = None
|
||||||
endcontext: EndContext
|
endcontext: EndContext
|
||||||
|
|
||||||
class MultiRecord(BaseModel):
|
class MultiRecord(BaseModel):
|
||||||
@@ -92,21 +92,19 @@ class BaseModeRecord(BaseModel):
|
|||||||
replayid: str
|
replayid: str
|
||||||
user: User
|
user: User
|
||||||
ts: datetime
|
ts: datetime
|
||||||
ismulti: bool | None
|
ismulti: bool | None = None
|
||||||
endcontext: list[EndContext]
|
endcontext: list[EndContext]
|
||||||
|
|
||||||
record: SoloRecord | MultiRecord | None
|
record: SoloRecord | MultiRecord | None = None
|
||||||
rank: int | None
|
rank: int | None = None
|
||||||
|
|
||||||
|
|
||||||
class SuccessModel(BaseSuccessModel):
|
class SuccessModel(BaseSuccessModel):
|
||||||
class Data(BaseModel):
|
class Data(BaseModel):
|
||||||
class Records(BaseModel):
|
class Records(BaseModel):
|
||||||
class Sprint(BaseModeRecord):
|
class Sprint(BaseModeRecord): ...
|
||||||
...
|
|
||||||
|
|
||||||
class Blitz(BaseModeRecord):
|
class Blitz(BaseModeRecord): ...
|
||||||
...
|
|
||||||
|
|
||||||
sprint: Sprint = Field(..., alias='40l')
|
sprint: Sprint = Field(..., alias='40l')
|
||||||
blitz: Blitz
|
blitz: Blitz
|
||||||
|
|||||||
Reference in New Issue
Block a user