更新模板 schemas
Some checks failed
TypeCheck / TypeCheck (push) Has been cancelled

This commit is contained in:
2025-05-06 01:23:17 +08:00
parent 8ee0fa77c2
commit 69d177715c
2 changed files with 32 additions and 3 deletions

View File

@@ -11,6 +11,7 @@ from ....utils.metrics import get_metrics
from ....utils.render import render from ....utils.render import render
from ....utils.render.schemas.base import Avatar from ....utils.render.schemas.base import Avatar
from ....utils.render.schemas.v2.tetrio.user.info import ( from ....utils.render.schemas.v2.tetrio.user.info import (
Achievement,
Badge, Badge,
Best, Best,
Blitz, Blitz,
@@ -33,7 +34,7 @@ from .tools import flow_to_history, handling_special_value
async def make_query_image_v2(player: Player) -> bytes: async def make_query_image_v2(player: Player) -> bytes:
( (
(user, user_info, league, sprint, blitz, zen), (user, user_info, league, sprint, blitz, zen),
(avatar_revision, banner_revision, leagueflow, zenith, zenithex), (avatar_revision, banner_revision, leagueflow, zenith, zenithex, achievements),
) = await gather( ) = await gather(
gather( gather(
player.user, player.user,
@@ -49,6 +50,7 @@ async def make_query_image_v2(player: Player) -> bytes:
player.get_leagueflow(), player.get_leagueflow(),
player.get_summaries('zenith'), player.get_summaries('zenith'),
player.get_summaries('zenithex'), player.get_summaries('zenithex'),
player.get_summaries('achievements'),
), ),
) )
if sprint.data.record is not None: if sprint.data.record is not None:
@@ -110,7 +112,20 @@ async def make_query_image_v2(player: Player) -> bytes:
], ],
xp=user_info.data.xp, xp=user_info.data.xp,
ar=user_info.data.ar, ar=user_info.data.ar,
achievements=user_info.data.achievements, achievements=[
Achievement(
key=i.achievement_id,
rank_type=i.rank_type,
ar_type=i.ar_type,
stub=i.stub,
rank=i.rank,
achieved_score=i.achieved_score,
pos=i.pos,
progress=i.progress,
total=i.total,
)
for i in achievements.data
],
playtime=play_time, playtime=play_time,
join_at=user_info.data.ts, join_at=user_info.data.ts,
), ),

View File

@@ -3,6 +3,8 @@ from typing import Literal
from pydantic import BaseModel from pydantic import BaseModel
from .......games.tetrio.api.schemas.summaries.achievements import ArType, RankType
from .......games.tetrio.api.schemas.summaries.achievements import Rank as AchievementRank
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, Base, HistoryData from ....base import Avatar, Base, HistoryData
@@ -15,6 +17,18 @@ class Badge(BaseModel):
receive_at: datetime | None receive_at: datetime | None
class Achievement(BaseModel):
key: int
rank_type: RankType
ar_type: ArType
stub: bool | None
rank: AchievementRank | None
achieved_score: float | None
pos: int | None
progress: float | None
total: int | None
class User(BaseModel): class User(BaseModel):
id: str id: str
name: str name: str
@@ -37,7 +51,7 @@ class User(BaseModel):
xp: Number xp: Number
ar: Number ar: Number
achievements: list[int] achievements: list[Achievement]
playtime: str | None playtime: str | None
join_at: datetime | None join_at: datetime | None