mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
✨ 迁移到新模板 (#536)
Some checks are pending
Code Coverage / Test (macos-latest, 3.10) (push) Waiting to run
Code Coverage / Test (macos-latest, 3.11) (push) Waiting to run
Code Coverage / Test (macos-latest, 3.12) (push) Waiting to run
Code Coverage / Test (ubuntu-latest, 3.10) (push) Waiting to run
Code Coverage / Test (ubuntu-latest, 3.11) (push) Waiting to run
Code Coverage / Test (ubuntu-latest, 3.12) (push) Waiting to run
Code Coverage / Test (windows-latest, 3.10) (push) Waiting to run
Code Coverage / Test (windows-latest, 3.11) (push) Waiting to run
Code Coverage / Test (windows-latest, 3.12) (push) Waiting to run
Code Coverage / check (push) Blocked by required conditions
TypeCheck / TypeCheck (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Some checks are pending
Code Coverage / Test (macos-latest, 3.10) (push) Waiting to run
Code Coverage / Test (macos-latest, 3.11) (push) Waiting to run
Code Coverage / Test (macos-latest, 3.12) (push) Waiting to run
Code Coverage / Test (ubuntu-latest, 3.10) (push) Waiting to run
Code Coverage / Test (ubuntu-latest, 3.11) (push) Waiting to run
Code Coverage / Test (ubuntu-latest, 3.12) (push) Waiting to run
Code Coverage / Test (windows-latest, 3.10) (push) Waiting to run
Code Coverage / Test (windows-latest, 3.11) (push) Waiting to run
Code Coverage / Test (windows-latest, 3.12) (push) Waiting to run
Code Coverage / check (push) Blocked by required conditions
TypeCheck / TypeCheck (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
* ➕ 添加依赖 strenum * 🐛 优化等待逻辑,修复截图爆炸 * ✨ 使用新模板 * ⚡️ 关闭自动转译 * ✨ 同步新模板 schemas * 🌐 添加模板语言的映射 * ✨ 适配 bind * ✨ 更新模板 * ✨ 全部适配 * 🚨 make mypy happy * Update nonebot_plugin_tetris_stats/games/tos/query.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * ✨ 使用用户设置语言 * 🚨 auto fix by pre-commit hooks --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .......games.tetrio.api.typedefs import ValidRank
|
||||
from ......typedefs import Number
|
||||
from ....base import Base
|
||||
|
||||
|
||||
class AverageData(BaseModel):
|
||||
pps: Number
|
||||
apm: Number
|
||||
apl: Number
|
||||
vs: Number
|
||||
adpl: Number
|
||||
|
||||
|
||||
class ItemData(BaseModel):
|
||||
require_tr: Number
|
||||
trending: Number
|
||||
average_data: AverageData
|
||||
players: Number
|
||||
|
||||
|
||||
class Data(Base):
|
||||
items: dict[ValidRank, ItemData]
|
||||
updated_at: datetime
|
||||
@@ -0,0 +1,33 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .......games.tetrio.api.typedefs import ValidRank
|
||||
from ......typedefs import Number
|
||||
from ....base import Base
|
||||
|
||||
|
||||
class SpecialData(BaseModel):
|
||||
apm: Number
|
||||
pps: Number
|
||||
lpm: Number
|
||||
vs: Number
|
||||
adpm: Number
|
||||
apl: Number | None = None
|
||||
adpl: Number | None = None
|
||||
apm_holder: str | None = None
|
||||
pps_holder: str | None = None
|
||||
vs_holder: str | None = None
|
||||
|
||||
|
||||
class Data(Base):
|
||||
name: ValidRank
|
||||
trending: Number
|
||||
require_tr: Number
|
||||
players: Number
|
||||
|
||||
minimum_data: SpecialData
|
||||
average_data: SpecialData
|
||||
maximum_data: SpecialData
|
||||
|
||||
updated_at: datetime
|
||||
@@ -0,0 +1,73 @@
|
||||
from datetime import datetime
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from ....base import Base, People
|
||||
|
||||
|
||||
class User(People):
|
||||
id: str
|
||||
|
||||
|
||||
class Max(BaseModel):
|
||||
combo: int
|
||||
btb: int
|
||||
|
||||
|
||||
class Mini(BaseModel):
|
||||
total: int
|
||||
single: int
|
||||
double: int
|
||||
|
||||
|
||||
class Tspins(BaseModel):
|
||||
total: int
|
||||
single: int
|
||||
double: int
|
||||
triple: int
|
||||
|
||||
mini: Mini
|
||||
|
||||
|
||||
class Finesse(BaseModel):
|
||||
faults: int
|
||||
accuracy: float
|
||||
|
||||
|
||||
class Statistic(BaseModel):
|
||||
keys: int
|
||||
kpp: float
|
||||
kps: float
|
||||
|
||||
max: Max
|
||||
|
||||
pieces: int
|
||||
pps: float
|
||||
lines: int
|
||||
lpm: float
|
||||
holds: int | None
|
||||
score: int
|
||||
|
||||
single: int
|
||||
double: int
|
||||
triple: int
|
||||
quad: int
|
||||
|
||||
tspins: Tspins
|
||||
|
||||
all_clear: int
|
||||
|
||||
finesse: Finesse
|
||||
|
||||
|
||||
class Record(Base):
|
||||
type: Literal['best', 'personal_best', 'recent', 'disputed']
|
||||
|
||||
user: User
|
||||
|
||||
replay_id: str
|
||||
rank: int | None
|
||||
personal_rank: int | None
|
||||
|
||||
play_at: datetime
|
||||
@@ -0,0 +1,12 @@
|
||||
from .base import Record as BaseRecord
|
||||
from .base import Statistic as BaseStatistic
|
||||
|
||||
|
||||
class Statistic(BaseStatistic):
|
||||
spp: float
|
||||
|
||||
level: int
|
||||
|
||||
|
||||
class Record(BaseRecord):
|
||||
statistic: Statistic
|
||||
@@ -0,0 +1,7 @@
|
||||
from .base import Record as BaseRecord
|
||||
from .base import Statistic
|
||||
|
||||
|
||||
class Record(BaseRecord):
|
||||
statistic: Statistic
|
||||
time: str
|
||||
@@ -0,0 +1,39 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .....typedefs import Number
|
||||
from ...base import Base
|
||||
|
||||
|
||||
class StatisticalData(BaseModel):
|
||||
pps: Number
|
||||
apm: Number
|
||||
apl: Number
|
||||
vs: Number
|
||||
adpl: Number
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
|
||||
|
||||
class Handling(BaseModel):
|
||||
arr: Number
|
||||
das: Number
|
||||
sdf: Number
|
||||
|
||||
|
||||
class Game(BaseModel):
|
||||
user: User
|
||||
points: Number
|
||||
average_data: StatisticalData
|
||||
data: list[StatisticalData]
|
||||
handling: Handling
|
||||
|
||||
|
||||
class Data(Base):
|
||||
replay_id: str
|
||||
games: list[Game]
|
||||
play_at: datetime
|
||||
@@ -0,0 +1,128 @@
|
||||
from datetime import datetime
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .......games.tetrio.api.typedefs import Rank
|
||||
from ......typedefs import Number
|
||||
from ....base import Avatar, Base, HistoryData
|
||||
|
||||
|
||||
class Badge(BaseModel):
|
||||
id: str
|
||||
description: str
|
||||
group: str | None
|
||||
receive_at: datetime | None
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
country: str | None
|
||||
|
||||
role: Literal['anon', 'user', 'bot', 'halfmod', 'mod', 'admin', 'sysop', 'hidden', 'banned']
|
||||
botmaster: str | None
|
||||
|
||||
avatar: str | Avatar
|
||||
banner: str | None
|
||||
|
||||
bio: str | None
|
||||
|
||||
friend_count: int | None
|
||||
supporter_tier: int
|
||||
|
||||
bad_standing: bool
|
||||
|
||||
badges: list[Badge]
|
||||
xp: Number
|
||||
|
||||
ar: Number
|
||||
achievements: list[int]
|
||||
|
||||
playtime: str | None
|
||||
join_at: datetime | None
|
||||
|
||||
|
||||
class Statistic(BaseModel):
|
||||
total: int | None
|
||||
wins: int | None
|
||||
|
||||
|
||||
class TetraLeagueStatistic(BaseModel):
|
||||
total: int
|
||||
wins: int
|
||||
|
||||
|
||||
class TetraLeague(BaseModel):
|
||||
rank: Rank
|
||||
highest_rank: Rank
|
||||
|
||||
tr: Number
|
||||
|
||||
glicko: Number | None
|
||||
rd: Number | None
|
||||
|
||||
global_rank: int | None
|
||||
country_rank: int | None
|
||||
|
||||
pps: Number | None
|
||||
|
||||
apm: Number | None
|
||||
apl: Number | None
|
||||
|
||||
vs: Number | None
|
||||
adpl: Number | None
|
||||
|
||||
statistic: TetraLeagueStatistic
|
||||
|
||||
decaying: bool
|
||||
|
||||
history: list[HistoryData] | None
|
||||
|
||||
|
||||
class Sprint(BaseModel):
|
||||
time: str
|
||||
global_rank: Number | None
|
||||
country_rank: Number | None
|
||||
play_at: datetime
|
||||
|
||||
|
||||
class Blitz(BaseModel):
|
||||
score: Number
|
||||
global_rank: int | None
|
||||
country_rank: int | None
|
||||
play_at: datetime
|
||||
|
||||
|
||||
class Zen(BaseModel):
|
||||
level: int
|
||||
score: int
|
||||
|
||||
|
||||
class Week(BaseModel):
|
||||
altitude: Number
|
||||
global_rank: int | None
|
||||
country_rank: int | None
|
||||
play_at: datetime
|
||||
|
||||
|
||||
class Best(BaseModel):
|
||||
altitude: Number
|
||||
global_rank: int | None
|
||||
play_at: datetime
|
||||
|
||||
|
||||
class Zenith(BaseModel):
|
||||
week: Week | None
|
||||
best: Best | None
|
||||
|
||||
|
||||
class Info(Base):
|
||||
user: User
|
||||
tetra_league: TetraLeague | None
|
||||
zenith: Zenith | None
|
||||
zenithex: Zenith | None
|
||||
statistic: Statistic | None
|
||||
sprint: Sprint | None
|
||||
blitz: Blitz | None
|
||||
zen: Zen | None
|
||||
@@ -0,0 +1,38 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .......games.tetrio.api.typedefs import Rank
|
||||
from ......typedefs import Number
|
||||
from ....base import Avatar, Base
|
||||
|
||||
|
||||
class TetraLeague(BaseModel):
|
||||
pps: Number
|
||||
apm: Number
|
||||
apl: Number
|
||||
vs: Number | None
|
||||
adpl: Number | None
|
||||
|
||||
rank: Rank
|
||||
tr: Number
|
||||
|
||||
glicko: Number | None
|
||||
rd: Number | None
|
||||
decaying: bool
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
avatar: str | Avatar
|
||||
country: str | None
|
||||
xp: Number
|
||||
|
||||
|
||||
class Data(BaseModel):
|
||||
user: User
|
||||
tetra_league: TetraLeague
|
||||
|
||||
|
||||
class List(Base):
|
||||
show_index: bool
|
||||
data: list[Data]
|
||||
Reference in New Issue
Block a user