mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
✨ 更新模板
This commit is contained in:
@@ -4,6 +4,7 @@ from jinja2 import Environment, FileSystemLoader
|
|||||||
from nonebot.compat import PYDANTIC_V2
|
from nonebot.compat import PYDANTIC_V2
|
||||||
|
|
||||||
from ..templates import TEMPLATES_DIR
|
from ..templates import TEMPLATES_DIR
|
||||||
|
from .schemas.base import Base
|
||||||
from .schemas.bind import Bind
|
from .schemas.bind import Bind
|
||||||
from .schemas.v1.tetrio.rank import Data as TETRIORankDataV1
|
from .schemas.v1.tetrio.rank import Data as TETRIORankDataV1
|
||||||
from .schemas.v1.tetrio.user.info import Info as TETRIOUserInfoV1
|
from .schemas.v1.tetrio.user.info import Info as TETRIOUserInfoV1
|
||||||
@@ -15,7 +16,7 @@ from .schemas.v2.tetrio.record.blitz import Record as TETRIORecordBlitzV2
|
|||||||
from .schemas.v2.tetrio.record.sprint import Record as TETRIORecordSprintV2
|
from .schemas.v2.tetrio.record.sprint import Record as TETRIORecordSprintV2
|
||||||
from .schemas.v2.tetrio.tetra_league import Data as TETRIOTetraLeagueDataV2
|
from .schemas.v2.tetrio.tetra_league import Data as TETRIOTetraLeagueDataV2
|
||||||
from .schemas.v2.tetrio.user.info import Info as TETRIOUserInfoV2
|
from .schemas.v2.tetrio.user.info import Info as TETRIOUserInfoV2
|
||||||
from .schemas.v2.tetrio.user.list import Data as TETRIOUserListV2
|
from .schemas.v2.tetrio.user.list import List as TETRIOUserListV2
|
||||||
|
|
||||||
env = Environment(
|
env = Environment(
|
||||||
loader=FileSystemLoader(TEMPLATES_DIR),
|
loader=FileSystemLoader(TEMPLATES_DIR),
|
||||||
@@ -50,35 +51,9 @@ async def render(render_type: Literal['v2/tetrio/tetra-league'], data: TETRIOTet
|
|||||||
async def render(render_type: Literal['v2/tetrio/user/info'], data: TETRIOUserInfoV2) -> str: ...
|
async def render(render_type: Literal['v2/tetrio/user/info'], data: TETRIOUserInfoV2) -> str: ...
|
||||||
@overload
|
@overload
|
||||||
async def render(render_type: Literal['v2/tetrio/user/list'], data: TETRIOUserListV2) -> str: ...
|
async def render(render_type: Literal['v2/tetrio/user/list'], data: TETRIOUserListV2) -> str: ...
|
||||||
|
|
||||||
|
|
||||||
async def render(
|
async def render(
|
||||||
render_type: Literal[
|
render_type: str,
|
||||||
'v1/binding',
|
data: Base,
|
||||||
'v1/tetrio/info',
|
|
||||||
'v1/tetrio/rank',
|
|
||||||
'v1/top/info',
|
|
||||||
'v1/tos/info',
|
|
||||||
'v2/tetrio/rank',
|
|
||||||
'v2/tetrio/rank/detail',
|
|
||||||
'v2/tetrio/record/blitz',
|
|
||||||
'v2/tetrio/record/sprint',
|
|
||||||
'v2/tetrio/tetra-league',
|
|
||||||
'v2/tetrio/user/info',
|
|
||||||
'v2/tetrio/user/list',
|
|
||||||
],
|
|
||||||
data: Bind
|
|
||||||
| TETRIOUserInfoV1
|
|
||||||
| TETRIORankDataV1
|
|
||||||
| TOPInfoV1
|
|
||||||
| TOSInfoV1
|
|
||||||
| TETRIORankDataV2
|
|
||||||
| TETRIORankDetailDataV2
|
|
||||||
| TETRIORecordBlitzV2
|
|
||||||
| TETRIORecordSprintV2
|
|
||||||
| TETRIOTetraLeagueDataV2
|
|
||||||
| TETRIOUserInfoV2
|
|
||||||
| TETRIOUserListV2,
|
|
||||||
) -> str:
|
) -> str:
|
||||||
if PYDANTIC_V2:
|
if PYDANTIC_V2:
|
||||||
return await env.get_template('index.html').render_async(
|
return await env.get_template('index.html').render_async(
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ from ..base import HistoryData
|
|||||||
class History(BaseModel):
|
class History(BaseModel):
|
||||||
data: list[HistoryData]
|
data: list[HistoryData]
|
||||||
split_interval: Number
|
split_interval: Number
|
||||||
min_tr: Number
|
min_value: Number
|
||||||
max_tr: Number
|
max_value: Number
|
||||||
offset: Number
|
offset: Number
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from datetime import datetime
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from ......games.tetrio.api.typedefs import ValidRank
|
from ......games.tetrio.api.typedefs import ValidRank
|
||||||
|
from ...base import Base
|
||||||
|
|
||||||
|
|
||||||
class ItemData(BaseModel):
|
class ItemData(BaseModel):
|
||||||
@@ -11,6 +12,6 @@ class ItemData(BaseModel):
|
|||||||
players: int
|
players: int
|
||||||
|
|
||||||
|
|
||||||
class Data(BaseModel):
|
class Data(Base):
|
||||||
items: dict[ValidRank, ItemData]
|
items: dict[ValidRank, ItemData]
|
||||||
updated_at: datetime
|
updated_at: datetime
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from .....typedefs import Number
|
from .....typedefs import Number
|
||||||
from ...base import People, Trending
|
from ...base import Base, People, Trending
|
||||||
from ..base import History
|
from ..base import History
|
||||||
|
|
||||||
|
|
||||||
class Multiplayer(BaseModel):
|
class Multiplayer(BaseModel):
|
||||||
history: History
|
history: History
|
||||||
|
rating: Number
|
||||||
|
rd: Number
|
||||||
|
|
||||||
lpm: Number
|
lpm: Number
|
||||||
pps: Number
|
pps: Number
|
||||||
@@ -34,7 +36,7 @@ class Singleplayer(BaseModel):
|
|||||||
marathon: str
|
marathon: str
|
||||||
|
|
||||||
|
|
||||||
class Info(BaseModel):
|
class Info(Base):
|
||||||
user: People
|
user: People
|
||||||
multiplayer: Multiplayer
|
multiplayer: Multiplayer
|
||||||
singleplayer: Singleplayer
|
singleplayer: Singleplayer
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from pydantic import BaseModel
|
|||||||
|
|
||||||
from .......games.tetrio.api.typedefs import ValidRank
|
from .......games.tetrio.api.typedefs import ValidRank
|
||||||
from ......typedefs import Number
|
from ......typedefs import Number
|
||||||
|
from ....base import Base
|
||||||
|
|
||||||
|
|
||||||
class AverageData(BaseModel):
|
class AverageData(BaseModel):
|
||||||
@@ -21,6 +22,6 @@ class ItemData(BaseModel):
|
|||||||
players: Number
|
players: Number
|
||||||
|
|
||||||
|
|
||||||
class Data(BaseModel):
|
class Data(Base):
|
||||||
items: dict[ValidRank, ItemData]
|
items: dict[ValidRank, ItemData]
|
||||||
updated_at: datetime
|
updated_at: datetime
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from pydantic import BaseModel
|
|||||||
|
|
||||||
from .......games.tetrio.api.typedefs import ValidRank
|
from .......games.tetrio.api.typedefs import ValidRank
|
||||||
from ......typedefs import Number
|
from ......typedefs import Number
|
||||||
|
from ....base import Base
|
||||||
|
|
||||||
|
|
||||||
class SpecialData(BaseModel):
|
class SpecialData(BaseModel):
|
||||||
@@ -19,7 +20,7 @@ class SpecialData(BaseModel):
|
|||||||
vs_holder: str | None = None
|
vs_holder: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class Data(BaseModel):
|
class Data(Base):
|
||||||
name: ValidRank
|
name: ValidRank
|
||||||
trending: Number
|
trending: Number
|
||||||
require_tr: Number
|
require_tr: Number
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from typing import Literal
|
|||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from ....base import People
|
from ....base import Base, People
|
||||||
|
|
||||||
|
|
||||||
class User(People):
|
class User(People):
|
||||||
@@ -61,7 +61,7 @@ class Statistic(BaseModel):
|
|||||||
finesse: Finesse
|
finesse: Finesse
|
||||||
|
|
||||||
|
|
||||||
class Record(BaseModel):
|
class Record(Base):
|
||||||
type: Literal['best', 'personal_best', 'recent', 'disputed']
|
type: Literal['best', 'personal_best', 'recent', 'disputed']
|
||||||
|
|
||||||
user: User
|
user: User
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from datetime import datetime
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from .....typedefs import Number
|
from .....typedefs import Number
|
||||||
|
from ...base import Base
|
||||||
|
|
||||||
|
|
||||||
class StatisticalData(BaseModel):
|
class StatisticalData(BaseModel):
|
||||||
@@ -32,7 +33,7 @@ class Game(BaseModel):
|
|||||||
handling: Handling
|
handling: Handling
|
||||||
|
|
||||||
|
|
||||||
class Data(BaseModel):
|
class Data(Base):
|
||||||
replay_id: str
|
replay_id: str
|
||||||
games: list[Game]
|
games: list[Game]
|
||||||
play_at: datetime
|
play_at: datetime
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from pydantic import BaseModel
|
|||||||
|
|
||||||
from .......games.tetrio.api.typedefs import Rank
|
from .......games.tetrio.api.typedefs import Rank
|
||||||
from ......typedefs import Number
|
from ......typedefs import Number
|
||||||
from ....base import Avatar, HistoryData
|
from ....base import Avatar, Base, HistoryData
|
||||||
|
|
||||||
|
|
||||||
class Badge(BaseModel):
|
class Badge(BaseModel):
|
||||||
@@ -37,7 +37,7 @@ class User(BaseModel):
|
|||||||
xp: Number
|
xp: Number
|
||||||
|
|
||||||
ar: Number
|
ar: Number
|
||||||
achievements: list[Number]
|
achievements: list[int]
|
||||||
|
|
||||||
playtime: str | None
|
playtime: str | None
|
||||||
join_at: datetime | None
|
join_at: datetime | None
|
||||||
@@ -100,24 +100,24 @@ class Zen(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class Week(BaseModel):
|
class Week(BaseModel):
|
||||||
altitude: int
|
altitude: Number
|
||||||
global_rank: int | None
|
global_rank: int | None
|
||||||
country_rank: int | None
|
country_rank: int | None
|
||||||
play_at: datetime
|
play_at: datetime
|
||||||
|
|
||||||
|
|
||||||
class Best(BaseModel):
|
class Best(BaseModel):
|
||||||
altitude: int
|
altitude: Number
|
||||||
global_rank: int | None
|
global_rank: int | None
|
||||||
play_at: datetime
|
play_at: datetime
|
||||||
|
|
||||||
|
|
||||||
class Zenith(BaseModel):
|
class Zenith(BaseModel):
|
||||||
week: Week
|
week: Week | None
|
||||||
best: Best
|
best: Best | None
|
||||||
|
|
||||||
|
|
||||||
class Info(BaseModel):
|
class Info(Base):
|
||||||
user: User
|
user: User
|
||||||
tetra_league: TetraLeague | None
|
tetra_league: TetraLeague | None
|
||||||
zenith: Zenith | None
|
zenith: Zenith | None
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from pydantic import BaseModel
|
|||||||
|
|
||||||
from .......games.tetrio.api.typedefs import Rank
|
from .......games.tetrio.api.typedefs import Rank
|
||||||
from ......typedefs import Number
|
from ......typedefs import Number
|
||||||
from ....base import Avatar
|
from ....base import Avatar, Base
|
||||||
|
|
||||||
|
|
||||||
class TetraLeague(BaseModel):
|
class TetraLeague(BaseModel):
|
||||||
@@ -33,6 +33,6 @@ class Data(BaseModel):
|
|||||||
tetra_league: TetraLeague
|
tetra_league: TetraLeague
|
||||||
|
|
||||||
|
|
||||||
class List(BaseModel):
|
class List(Base):
|
||||||
show_index: bool
|
show_index: bool
|
||||||
data: list[Data]
|
data: list[Data]
|
||||||
|
|||||||
Reference in New Issue
Block a user