diff --git a/nonebot_plugin_tetris_stats/db/models.py b/nonebot_plugin_tetris_stats/db/models.py index 870a8c7..cec2a5b 100644 --- a/nonebot_plugin_tetris_stats/db/models.py +++ b/nonebot_plugin_tetris_stats/db/models.py @@ -3,6 +3,7 @@ from datetime import datetime from typing import Any from nonebot.adapters import Message +from nonebot.compat import type_validate_json from nonebot_plugin_orm import Model from pydantic import BaseModel, ValidationError from sqlalchemy import JSON, DateTime, Dialect, PickleType, String, TypeDecorator @@ -30,7 +31,7 @@ class PydanticType(TypeDecorator): if isinstance(value, str | bytes): for i in self.get_model(): try: - return i.model_validate_json(value) + return type_validate_json(i, value) except ValidationError: # noqa: PERF203 ... raise TypeError diff --git a/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/processor.py b/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/processor.py index a2131d4..14724a4 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/processor.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/tos_data_processor/processor.py @@ -155,8 +155,8 @@ class Processor(ProcessorMeta): failover_code=[502], failover_exc=(TimeoutException,), ) - self.processed_data.user_profile[params] = UserProfile.model_validate_json( - self.raw_response.user_profile[params] + self.processed_data.user_profile[params] = type_validate_json( + UserProfile, self.raw_response.user_profile[params] ) return self.processed_data.user_profile[params]