♻️ 重构模板截图部分以解决导航导致的报错 (#553)

* ♻️ 把 path 放到数据模型里

* ♻️ 使用通用函数来生成模板图片

* 🎨 同步模板项目结构

* 🐛 修正导入路径
This commit is contained in:
呵呵です
2025-07-27 22:58:41 +08:00
committed by GitHub
parent fdbb2f3f6e
commit 65e7fed32b
29 changed files with 584 additions and 611 deletions

View File

@@ -1,6 +1,7 @@
from datetime import datetime
from pydantic import BaseModel
from typing_extensions import override
from .......games.tetrio.api.typedefs import ValidRank
from ......typedefs import Number
@@ -23,5 +24,10 @@ class ItemData(BaseModel):
class Data(Base):
@property
@override
def path(self) -> str:
return 'v2/tetrio/rank'
items: dict[ValidRank, ItemData]
updated_at: datetime

View File

@@ -1,6 +1,7 @@
from datetime import datetime
from pydantic import BaseModel
from typing_extensions import override
from .......games.tetrio.api.typedefs import ValidRank
from ......typedefs import Number
@@ -21,6 +22,11 @@ class SpecialData(BaseModel):
class Data(Base):
@property
@override
def path(self) -> str:
return 'v2/tetrio/rank/detail'
name: ValidRank
trending: Number
require_tr: Number

View File

@@ -1,3 +1,5 @@
from typing_extensions import override
from .base import Record as BaseRecord
from .base import Statistic as BaseStatistic
@@ -9,4 +11,9 @@ class Statistic(BaseStatistic):
class Record(BaseRecord):
@property
@override
def path(self) -> str:
return 'v2/tetrio/record/blitz'
statistic: Statistic

View File

@@ -1,7 +1,14 @@
from typing_extensions import override
from .base import Record as BaseRecord
from .base import Statistic
class Record(BaseRecord):
@property
@override
def path(self) -> str:
return 'v2/tetrio/record/sprint'
statistic: Statistic
time: str

View File

@@ -1,6 +1,7 @@
from datetime import datetime
from pydantic import BaseModel
from typing_extensions import override
from .....typedefs import Number
from ...base import Base
@@ -34,6 +35,11 @@ class Game(BaseModel):
class Data(Base):
@property
@override
def path(self) -> str:
return 'v2/tetrio/tetra-league'
replay_id: str
games: list[Game]
play_at: datetime

View File

@@ -2,6 +2,7 @@ from datetime import datetime
from typing import Literal
from pydantic import BaseModel
from typing_extensions import override
from .......games.tetrio.api.schemas.summaries.achievements import ArType, RankType
from .......games.tetrio.api.schemas.summaries.achievements import Rank as AchievementRank
@@ -132,6 +133,11 @@ class Zenith(BaseModel):
class Info(Base):
@property
@override
def path(self) -> str:
return 'v2/tetrio/user/info'
user: User
tetra_league: TetraLeague | None
zenith: Zenith | None

View File

@@ -1,4 +1,5 @@
from pydantic import BaseModel
from typing_extensions import override
from .......games.tetrio.api.typedefs import Rank
from ......typedefs import Number
@@ -34,5 +35,10 @@ class Data(BaseModel):
class List(Base):
@property
@override
def path(self) -> str:
return 'v2/tetrio/user/list'
show_index: bool
data: list[Data]