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 bfb86b7..e0ae0ca 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 @@ -1,4 +1,5 @@ -from pydantic import BaseModel, Field +from nonebot.compat import PYDANTIC_V2 +from pydantic import BaseModel, ConfigDict, Field from ..typing import Rank from .base import FailedModel @@ -13,6 +14,12 @@ class _User(BaseModel): supporter: bool verified: bool country: str | None = None + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True class SuccessModel(BaseSuccessModel): diff --git a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_info.py b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_info.py index 2400d72..a6d5ec7 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_info.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_info.py @@ -1,7 +1,8 @@ from datetime import datetime from typing import Literal -from pydantic import BaseModel, Field +from nonebot.compat import PYDANTIC_V2 +from pydantic import BaseModel, ConfigDict, Field from ..typing import Rank from .base import FailedModel @@ -113,6 +114,12 @@ class SuccessModel(BaseSuccessModel): connections: Connections friend_count: int | None = None distinguishment: Distinguishment | None = None + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True user: User diff --git a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py index a352813..a30ae31 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py @@ -1,6 +1,7 @@ from datetime import datetime -from pydantic import BaseModel, Field +from nonebot.compat import PYDANTIC_V2 +from pydantic import BaseModel, ConfigDict, Field from .base import FailedModel from .base import SuccessModel as BaseSuccessModel @@ -66,11 +67,23 @@ class EndContext(BaseModel): finesse: Finesse final_time: float = Field(..., alias='finalTime') gametype: str + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True class _User(BaseModel): id: str = Field(..., alias='_id') username: str + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True class _Record(BaseModel): @@ -80,6 +93,12 @@ class _Record(BaseModel): user: _User ts: datetime ismulti: bool | None = None + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True class BaseModeRecord(BaseModel): @@ -102,6 +121,12 @@ class SuccessModel(BaseSuccessModel): sprint: Sprint = Field(..., alias='40l') blitz: Blitz + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True class Zen(BaseModel): level: int diff --git a/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/schemas/user_info.py b/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/schemas/user_info.py index 49e21ba..c65c21f 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/schemas/user_info.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/schemas/user_info.py @@ -1,7 +1,8 @@ from datetime import datetime from typing import Literal -from pydantic import BaseModel, Field +from nonebot.compat import PYDANTIC_V2 +from pydantic import BaseModel, ConfigDict, Field class SuccessModel(BaseModel): @@ -16,6 +17,12 @@ class SuccessModel(BaseModel): win: str lose: str score: str + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True class UserDataTotalItem(BaseModel): time_map: str = Field(..., alias='timeMap') @@ -48,6 +55,12 @@ class SuccessModel(BaseModel): tspin_no_map: str = Field(..., alias='tspinNoMap') b2b_no_map: str = Field(..., alias='b2bNoMap') perfect_clear_no_map: str = Field(..., alias='perfectClearNoMap') + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True teaid: str = Field(..., alias='teaId') name: str @@ -72,6 +85,13 @@ class SuccessModel(BaseModel): register_date: datetime = Field(..., alias='registerDate') last_login_date: datetime = Field(..., alias='lastLoginDate') + if PYDANTIC_V2: + model_config = ConfigDict(populate_by_name=True) + else: + + class Config: + allow_population_by_field_name = True + code: int success: Literal[True] data: Data