mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
🐛 修复被 ban 的爆炸 (#510)
This commit is contained in:
@@ -122,5 +122,9 @@ class RatedData(BaseData):
|
|||||||
percentile_rank: str
|
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):
|
class LeagueSuccessModel(SuccessModel):
|
||||||
data: NeverPlayedData | NeverRatedData | RatedData
|
data: NeverPlayedData | NeverRatedData | RatedData | InvalidData
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from zoneinfo import ZoneInfo
|
|||||||
from ....utils.exception import FallbackError
|
from ....utils.exception import FallbackError
|
||||||
from ....utils.render.schemas.tetrio.user.base import TetraLeagueHistoryData
|
from ....utils.render.schemas.tetrio.user.base import TetraLeagueHistoryData
|
||||||
from ..api.schemas.labs.leagueflow import Empty, LeagueFlowSuccess
|
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(
|
def flow_to_history(
|
||||||
@@ -47,6 +47,8 @@ def get_league_data(
|
|||||||
user_info: LeagueSuccessModel, league_type: type[L] | None = None
|
user_info: LeagueSuccessModel, league_type: type[L] | None = None
|
||||||
) -> L | NeverPlayedData | NeverRatedData | RatedData:
|
) -> L | NeverPlayedData | NeverRatedData | RatedData:
|
||||||
league = user_info.data
|
league = user_info.data
|
||||||
|
if isinstance(league, InvalidData):
|
||||||
|
raise FallbackError
|
||||||
if league_type is None:
|
if league_type is None:
|
||||||
return league
|
return league
|
||||||
if isinstance(league, league_type):
|
if isinstance(league, league_type):
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ from ....utils.render.schemas.tetrio.user.info_v2 import (
|
|||||||
)
|
)
|
||||||
from ....utils.screenshot import screenshot
|
from ....utils.screenshot import screenshot
|
||||||
from ..api import Player
|
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
|
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,
|
decaying=league.data.decaying,
|
||||||
history=history,
|
history=history,
|
||||||
)
|
)
|
||||||
if not isinstance(league.data, NeverPlayedData)
|
if not isinstance(league.data, NeverPlayedData | InvalidData)
|
||||||
else None,
|
else None,
|
||||||
statistic=Statistic(
|
statistic=Statistic(
|
||||||
total=handling_special_value(user_info.data.gamesplayed),
|
total=handling_special_value(user_info.data.gamesplayed),
|
||||||
|
|||||||
Reference in New Issue
Block a user