🐛 修复被 ban 的爆炸 (#510)

This commit is contained in:
呵呵です
2024-10-29 00:43:38 +08:00
committed by GitHub
parent dbde1181ce
commit d4e91c8521
3 changed files with 10 additions and 4 deletions

View File

@@ -122,5 +122,9 @@ class RatedData(BaseData):
percentile_rank: str
class InvalidData(BaseModel):
"""I don't know what osk is doing, but the return value is an empty dictionary"""
class LeagueSuccessModel(SuccessModel):
data: NeverPlayedData | NeverRatedData | RatedData
data: NeverPlayedData | NeverRatedData | RatedData | InvalidData

View File

@@ -6,7 +6,7 @@ from zoneinfo import ZoneInfo
from ....utils.exception import FallbackError
from ....utils.render.schemas.tetrio.user.base import TetraLeagueHistoryData
from ..api.schemas.labs.leagueflow import Empty, LeagueFlowSuccess
from ..api.schemas.summaries.league import LeagueSuccessModel, NeverPlayedData, NeverRatedData, RatedData
from ..api.schemas.summaries.league import InvalidData, LeagueSuccessModel, NeverPlayedData, NeverRatedData, RatedData
def flow_to_history(
@@ -47,6 +47,8 @@ def get_league_data(
user_info: LeagueSuccessModel, league_type: type[L] | None = None
) -> L | NeverPlayedData | NeverRatedData | RatedData:
league = user_info.data
if isinstance(league, InvalidData):
raise FallbackError
if league_type is None:
return league
if isinstance(league, league_type):

View File

@@ -22,7 +22,7 @@ from ....utils.render.schemas.tetrio.user.info_v2 import (
)
from ....utils.screenshot import screenshot
from ..api import Player
from ..api.schemas.summaries.league import NeverPlayedData, NeverRatedData
from ..api.schemas.summaries.league import InvalidData, NeverPlayedData, NeverRatedData
from .tools import flow_to_history, handling_special_value
@@ -111,7 +111,7 @@ async def make_query_image_v2(player: Player) -> bytes:
decaying=league.data.decaying,
history=history,
)
if not isinstance(league.data, NeverPlayedData)
if not isinstance(league.data, NeverPlayedData | InvalidData)
else None,
statistic=Statistic(
total=handling_special_value(user_info.data.gamesplayed),