From ee058d4a8837b54b438de9a39100252ac592ed77 Mon Sep 17 00:00:00 2001 From: scdhh Date: Tue, 14 Nov 2023 00:45:38 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E6=8E=92?= =?UTF-8?q?=E8=A1=8C=E6=A6=9C=20Users.League=20=E7=9A=84=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=B8=BA=20None=20=E6=97=B6=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io_data_processor/processor.py | 4 +-- .../io_data_processor/schemas/league_all.py | 30 +++++++++++++++++-- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/processor.py b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/processor.py index ecd9122..24ec481 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/processor.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/processor.py @@ -24,7 +24,7 @@ from .constant import BASE_URL, GAME_TYPE, RANK_PERCENTILE from .model import IORank from .schemas.league_all import FailedModel as LeagueAllFailed from .schemas.league_all import LeagueAll -from .schemas.league_all import User as LeagueAllUser +from .schemas.league_all import ValidUser as LeagueAllUser from .schemas.user_info import FailedModel as InfoFailed from .schemas.user_info import ( NeverPlayedLeague, @@ -216,7 +216,7 @@ async def get_io_rank_data() -> None: user = sort(users, field) return asdict(User(ID=user.id, name=user.username)), field(user) - users = league_all.data.users + users = [i for i in league_all.data.users if isinstance(i, LeagueAllUser)] rank_to_users: defaultdict[Rank, list[LeagueAllUser]] = defaultdict(list) for i in users: rank_to_users[i.league.rank].append(i) diff --git a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py index efc33fc..0229109 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py @@ -7,7 +7,7 @@ from .base import SuccessModel as BaseSuccessModel class SuccessModel(BaseSuccessModel): class Data(BaseModel): - class User(BaseModel): + class ValidUser(BaseModel): class League(BaseModel): gamesplayed: int gameswon: int @@ -30,10 +30,34 @@ class SuccessModel(BaseSuccessModel): verified: bool country: str | None - users: list[User] + class InvalidUser(BaseModel): + class League(BaseModel): + gamesplayed: int + gameswon: int + rating: float + glicko: float | None + rd: float | None + rank: Rank + bestrank: Rank + apm: float | None + pps: float | None + vs: float | None + decaying: bool + + id: str = Field(..., alias='_id') + username: str + role: str + xp: float + league: League + supporter: bool + verified: bool + country: str | None + + users: list[ValidUser | InvalidUser] data: Data LeagueAll = SuccessModel | FailedModel -User = SuccessModel.Data.User +ValidUser = SuccessModel.Data.ValidUser +InvalidUser = SuccessModel.Data.InvalidUser