mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
✨ 新赛季 records 模型
This commit is contained in:
@@ -1,26 +0,0 @@
|
|||||||
from datetime import datetime
|
|
||||||
from typing import Literal
|
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
|
|
||||||
class P(BaseModel): # what is P
|
|
||||||
pri: float
|
|
||||||
sec: float
|
|
||||||
ter: float
|
|
||||||
|
|
||||||
|
|
||||||
class Cache(BaseModel):
|
|
||||||
status: str
|
|
||||||
cached_at: datetime
|
|
||||||
cached_until: datetime
|
|
||||||
|
|
||||||
|
|
||||||
class SuccessModel(BaseModel):
|
|
||||||
success: Literal[True]
|
|
||||||
cache: Cache
|
|
||||||
|
|
||||||
|
|
||||||
class FailedModel(BaseModel):
|
|
||||||
success: Literal[False]
|
|
||||||
error: str
|
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
from typing import Literal
|
||||||
|
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
class AggregateStats(BaseModel):
|
||||||
|
apm: float
|
||||||
|
pps: float
|
||||||
|
vsscore: float
|
||||||
|
|
||||||
|
|
||||||
|
class Finesse(BaseModel):
|
||||||
|
combo: int
|
||||||
|
faults: int
|
||||||
|
perfectpieces: int
|
||||||
|
|
||||||
|
|
||||||
|
class Clears(BaseModel):
|
||||||
|
singles: int
|
||||||
|
doubles: int
|
||||||
|
triples: int
|
||||||
|
quads: int
|
||||||
|
realtspins: int
|
||||||
|
minitspins: int
|
||||||
|
minitspinsingles: int
|
||||||
|
tspinsingles: int
|
||||||
|
minitspindoubles: int
|
||||||
|
tspindoubles: int
|
||||||
|
tspintriples: int
|
||||||
|
tspinquads: int
|
||||||
|
allclear: int
|
||||||
|
|
||||||
|
|
||||||
|
class Garbage(BaseModel):
|
||||||
|
sent: int
|
||||||
|
received: int
|
||||||
|
attack: int | None
|
||||||
|
cleared: int
|
||||||
|
|
||||||
|
|
||||||
|
class P(BaseModel): # what is P
|
||||||
|
pri: float
|
||||||
|
sec: float
|
||||||
|
ter: float
|
||||||
|
|
||||||
|
|
||||||
|
class Cache(BaseModel):
|
||||||
|
status: str
|
||||||
|
cached_at: datetime
|
||||||
|
cached_until: datetime
|
||||||
|
|
||||||
|
|
||||||
|
class SuccessModel(BaseModel):
|
||||||
|
success: Literal[True]
|
||||||
|
cache: Cache
|
||||||
|
|
||||||
|
|
||||||
|
class FailedModel(BaseModel):
|
||||||
|
success: Literal[False]
|
||||||
|
error: str
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
from typing import Literal
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
from ..base import P
|
||||||
|
from . import AggregateStats, Clears, Finesse, Garbage
|
||||||
|
|
||||||
|
|
||||||
|
class Time(BaseModel):
|
||||||
|
start: int
|
||||||
|
zero: bool
|
||||||
|
locked: bool
|
||||||
|
prev: int
|
||||||
|
frameoffset: int
|
||||||
|
|
||||||
|
|
||||||
|
class Stats(BaseModel):
|
||||||
|
seed: int | None = None # ?: 不知道是之后都没有了还是还会有
|
||||||
|
lines: int
|
||||||
|
level_lines: int
|
||||||
|
level_lines_needed: int
|
||||||
|
inputs: int
|
||||||
|
holds: int
|
||||||
|
time: Time | None = None # ?: 不知道是之后都没有了还是还会有
|
||||||
|
score: int
|
||||||
|
zenlevel: int
|
||||||
|
zenprogress: int
|
||||||
|
level: int
|
||||||
|
combo: int
|
||||||
|
currentcombopower: int | None = None
|
||||||
|
topcombo: int
|
||||||
|
btb: int
|
||||||
|
topbtb: int
|
||||||
|
currentbtbchainpower: int | None = None
|
||||||
|
tspins: int
|
||||||
|
piecesplaced: int
|
||||||
|
clears: Clears
|
||||||
|
garbage: Garbage
|
||||||
|
kills: int
|
||||||
|
finesse: Finesse
|
||||||
|
finaltime: float
|
||||||
|
|
||||||
|
|
||||||
|
class Results(BaseModel):
|
||||||
|
aggregatestats: AggregateStats
|
||||||
|
stats: Stats
|
||||||
|
gameoverreason: str
|
||||||
|
|
||||||
|
|
||||||
|
class Record(BaseModel):
|
||||||
|
id: str = Field(..., alias='_id')
|
||||||
|
replayid: str
|
||||||
|
stub: bool
|
||||||
|
gamemode: Literal['40l', 'blitz']
|
||||||
|
pb: bool
|
||||||
|
oncepb: bool
|
||||||
|
ts: datetime
|
||||||
|
revolution: None
|
||||||
|
otherusers: list
|
||||||
|
leaderboards: list[str]
|
||||||
|
results: Results
|
||||||
|
extras: dict
|
||||||
|
disputed: bool
|
||||||
|
p: P
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from ..base import SuccessModel
|
||||||
|
from ..base.solo import Record
|
||||||
|
|
||||||
|
|
||||||
|
class Data(BaseModel):
|
||||||
|
entries: list[Record]
|
||||||
|
|
||||||
|
|
||||||
|
class Model(SuccessModel):
|
||||||
|
data: Data
|
||||||
@@ -9,15 +9,3 @@ class User(BaseModel):
|
|||||||
country: str | None
|
country: str | None
|
||||||
verified: int
|
verified: int
|
||||||
supporter: int
|
supporter: int
|
||||||
|
|
||||||
|
|
||||||
class AggregateStats(BaseModel):
|
|
||||||
apm: float
|
|
||||||
pps: float
|
|
||||||
vsscore: float
|
|
||||||
|
|
||||||
|
|
||||||
class Finesse(BaseModel):
|
|
||||||
combo: int
|
|
||||||
faults: int
|
|
||||||
perfectpieces: int
|
|
||||||
|
|||||||
@@ -1,92 +1,14 @@
|
|||||||
from datetime import datetime
|
from typing import TypeAlias
|
||||||
from typing import Literal, TypeAlias
|
|
||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from ..base import FailedModel, P, SuccessModel
|
from ..base import FailedModel, SuccessModel
|
||||||
from .base import AggregateStats, Finesse, User
|
from ..base.solo import Record as BaseRecord
|
||||||
|
from .base import User
|
||||||
|
|
||||||
|
|
||||||
class Time(BaseModel):
|
class Record(BaseRecord):
|
||||||
start: int
|
|
||||||
zero: bool
|
|
||||||
locked: bool
|
|
||||||
prev: int
|
|
||||||
frameoffset: int
|
|
||||||
|
|
||||||
|
|
||||||
class Clears(BaseModel):
|
|
||||||
singles: int
|
|
||||||
doubles: int
|
|
||||||
triples: int
|
|
||||||
quads: int
|
|
||||||
realtspins: int
|
|
||||||
minitspins: int
|
|
||||||
minitspinsingles: int
|
|
||||||
tspinsingles: int
|
|
||||||
minitspindoubles: int
|
|
||||||
tspindoubles: int
|
|
||||||
tspintriples: int
|
|
||||||
tspinquads: int
|
|
||||||
allclear: int
|
|
||||||
|
|
||||||
|
|
||||||
class Garbage(BaseModel):
|
|
||||||
sent: int
|
|
||||||
received: int
|
|
||||||
attack: int | None
|
|
||||||
cleared: int
|
|
||||||
|
|
||||||
|
|
||||||
class Stats(BaseModel):
|
|
||||||
seed: int | None = None # ?: 不知道是之后都没有了还是还会有
|
|
||||||
lines: int
|
|
||||||
level_lines: int
|
|
||||||
level_lines_needed: int
|
|
||||||
inputs: int
|
|
||||||
holds: int
|
|
||||||
time: Time | None = None # ?: 不知道是之后都没有了还是还会有
|
|
||||||
score: int
|
|
||||||
zenlevel: int
|
|
||||||
zenprogress: int
|
|
||||||
level: int
|
|
||||||
combo: int
|
|
||||||
currentcombopower: int | None = None
|
|
||||||
topcombo: int
|
|
||||||
btb: int
|
|
||||||
topbtb: int
|
|
||||||
currentbtbchainpower: int | None = None
|
|
||||||
tspins: int
|
|
||||||
piecesplaced: int
|
|
||||||
clears: Clears
|
|
||||||
garbage: Garbage
|
|
||||||
kills: int
|
|
||||||
finesse: Finesse
|
|
||||||
finaltime: float
|
|
||||||
|
|
||||||
|
|
||||||
class Results(BaseModel):
|
|
||||||
aggregatestats: AggregateStats
|
|
||||||
stats: Stats
|
|
||||||
gameoverreason: str
|
|
||||||
|
|
||||||
|
|
||||||
class Record(BaseModel):
|
|
||||||
id: str = Field(..., alias='_id')
|
|
||||||
replayid: str
|
|
||||||
stub: bool
|
|
||||||
gamemode: Literal['40l', 'blitz']
|
|
||||||
pb: bool
|
|
||||||
oncepb: bool
|
|
||||||
ts: datetime
|
|
||||||
revolution: None
|
|
||||||
user: User
|
user: User
|
||||||
otherusers: list
|
|
||||||
leaderboards: list[str]
|
|
||||||
results: Results
|
|
||||||
extras: dict
|
|
||||||
disputed: bool
|
|
||||||
p: P
|
|
||||||
|
|
||||||
|
|
||||||
class Data(BaseModel):
|
class Data(BaseModel):
|
||||||
|
|||||||
@@ -3,38 +3,23 @@ from typing import Literal, TypeAlias
|
|||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from ..base import FailedModel, P, SuccessModel
|
from ..base import AggregateStats, FailedModel, Finesse, P, SuccessModel
|
||||||
from .base import AggregateStats, Finesse, User
|
from ..base import Clears as BaseClears
|
||||||
|
from ..base import Garbage as BaseGarbage
|
||||||
|
from .base import User
|
||||||
|
|
||||||
|
|
||||||
class Clears(BaseModel):
|
class Clears(BaseClears):
|
||||||
singles: int
|
|
||||||
doubles: int
|
|
||||||
triples: int
|
|
||||||
quads: int
|
|
||||||
pentas: int
|
pentas: int
|
||||||
realtspins: int
|
|
||||||
minitspins: int
|
|
||||||
minitspinsingles: int
|
|
||||||
tspinsingles: int
|
|
||||||
minitspindoubles: int
|
|
||||||
tspindoubles: int
|
|
||||||
minitspintriples: int
|
minitspintriples: int
|
||||||
tspintriples: int
|
|
||||||
minitspinquads: int
|
minitspinquads: int
|
||||||
tspinquads: int
|
|
||||||
tspinpentas: int
|
tspinpentas: int
|
||||||
allclear: int
|
|
||||||
|
|
||||||
|
|
||||||
class Garbage(BaseModel):
|
class Garbage(BaseGarbage):
|
||||||
sent: int
|
|
||||||
sent_nomult: int
|
sent_nomult: int
|
||||||
maxspike: int
|
maxspike: int
|
||||||
maxspike_nomult: int
|
maxspike_nomult: int
|
||||||
received: int
|
|
||||||
attack: int
|
|
||||||
cleared: int
|
|
||||||
|
|
||||||
|
|
||||||
class _Zenith(BaseModel):
|
class _Zenith(BaseModel):
|
||||||
|
|||||||
Reference in New Issue
Block a user