From dc016fc22ff0c2f5b771970bd5bf3333884cbc84 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Wed, 12 Feb 2025 13:50:24 +0800 Subject: [PATCH] feat: update validate_config to return a tuple contains casted data --- astrbot/dashboard/routes/config.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/astrbot/dashboard/routes/config.py b/astrbot/dashboard/routes/config.py index a26d67159..61810705c 100644 --- a/astrbot/dashboard/routes/config.py +++ b/astrbot/dashboard/routes/config.py @@ -1,3 +1,4 @@ +import typing from .route import Route, Response, RouteContext from quart import request from astrbot.core.config.default import CONFIG_METADATA_2, DEFAULT_VALUE_MAP @@ -17,7 +18,7 @@ def try_cast(value: str, type_: str): elif type_ == "float" and isinstance(value, int): return float(value) -def validate_config(data, schema: dict, is_core: bool): +def validate_config(data, schema: dict, is_core: bool) -> typing.Tuple[typing.List[str], typing.Dict]: errors = [] def validate(data, metadata=schema, path=""): for key, meta in metadata.items(): @@ -65,16 +66,16 @@ def validate_config(data, schema: dict, is_core: bool): else: validate(data, schema) - return errors + return errors, data def save_config(post_config: dict, config: AstrBotConfig, is_core: bool = False): '''验证并保存配置''' errors = None try: if is_core: - errors = validate_config(post_config, CONFIG_METADATA_2, is_core) + errors, post_config = validate_config(post_config, CONFIG_METADATA_2, is_core) else: - errors = validate_config(post_config, config.schema, is_core) + errors, post_config = validate_config(post_config, config.schema, is_core) except BaseException as e: logger.warning(f"验证配置时出现异常: {e}") if errors: