diff --git a/pyproject.toml b/pyproject.toml index 64debf6..d5e382c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nonebot-plugin-majsoul" -version = "0.2.8" +version = "0.2.9" description = "NoneBot2 雀魂信息查询插件" authors = ["ssttkkl "] license = "AGPL-3.0" @@ -13,7 +13,7 @@ packages = [ python = "^3.9" nonebot2 = {extras = ["httpx"], version = ">=2.0.0"} nonebot-plugin-send-anything-anywhere = ">=0.2.1" -ssttkkl-nonebot-utils = ">=0.1.22" +ssttkkl-nonebot-utils = ">=0.1.23" tzlocal = ">=4.2" monthdelta = ">=0.9.1" icmplib = ">=3.0.3" diff --git a/src/nonebot_plugin_majsoul/paifuya/data/models/game_record.py b/src/nonebot_plugin_majsoul/paifuya/data/models/game_record.py index 37fb24a..d87e69a 100644 --- a/src/nonebot_plugin_majsoul/paifuya/data/models/game_record.py +++ b/src/nonebot_plugin_majsoul/paifuya/data/models/game_record.py @@ -1,8 +1,9 @@ from datetime import datetime, timezone from typing import List -from pydantic import BaseModel, Field, validator +from pydantic import BaseModel, Field +from ssttkkl_nonebot_utils.pyc import field_validator from .player_rank import PlayerRank from .room_rank import RoomRank @@ -14,7 +15,7 @@ class GamePlayer(BaseModel): score: int pt: int = Field(alias="gradingScore") - @validator("rank", pre=True, allow_reuse=True) + @field_validator("rank", mode="before") def parse_rank(cls, v): if isinstance(v, PlayerRank): return v @@ -31,7 +32,7 @@ class GameRecord(BaseModel): end_time: datetime = Field(alias="endTime") players: List[GamePlayer] - @validator("start_time", "end_time", pre=True, allow_reuse=True) + @field_validator("start_time", "end_time", mode="before") def parse_timestamp(cls, v): if isinstance(v, int) or isinstance(v, float): return datetime.fromtimestamp(v, timezone.utc)