From 3ca403f38a2dfc464f5ce6fdc529975f775c349b Mon Sep 17 00:00:00 2001 From: aszerW Date: Mon, 18 May 2026 22:20:28 +0800 Subject: [PATCH] =?UTF-8?q?fix(config):=20=E4=BF=AE=E5=A4=8D=E9=92=89?= =?UTF-8?q?=E9=92=89=E5=A4=9A=E7=BE=A4=E9=85=8D=E7=BD=AE=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:原逻辑从 i=1 开始查找 DINGTALK_WEBHOOK_1(不存在), 导致群2(DINGTALK_WEBHOOK_2)未被读取。 修复: - 群1使用不带编号的 DINGTALK_WEBHOOK + DINGTALK_SECRET - 从 i=2 开始读取编号配置 验证:成功读取到2个钉钉群配置 --- config/settings.py | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/config/settings.py b/config/settings.py index 4f9fd9b..d651434 100644 --- a/config/settings.py +++ b/config/settings.py @@ -40,21 +40,23 @@ def get_all_dingtalk_configs() -> List[Dict[str, str]]: 获取所有钉钉机器人配置(支持多群) 环境变量格式: - DINGTALK_WEBHOOK_1=xxx - DINGTALK_SECRET_1=xxx - DINGTALK_WEBHOOK_2=xxx - DINGTALK_SECRET_2=xxx + 群1: DINGTALK_WEBHOOK + DINGTALK_SECRET(不带编号) + 群2: DINGTALK_WEBHOOK_2 + DINGTALK_SECRET_2 + 群3: DINGTALK_WEBHOOK_3 + DINGTALK_SECRET_3 ... - 如果没有编号配置,则使用 DINGTALK_WEBHOOK 和 DINGTALK_SECRET - Returns: list: 配置列表,每项包含 webhook 和 secret """ configs = [] - # 查找编号配置 - i = 1 + # 1. 先读取不带编号的默认配置(群1) + default_config = get_dingtalk_config() + if default_config["webhook"]: + configs.append(default_config) + + # 2. 从 i=2 开始读取编号配置(群2、群3...) + i = 2 while True: webhook = os.getenv(f"DINGTALK_WEBHOOK_{i}", "") secret = os.getenv(f"DINGTALK_SECRET_{i}", "") @@ -68,12 +70,6 @@ def get_all_dingtalk_configs() -> List[Dict[str, str]]: }) i += 1 - # 如果没有编号配置,使用默认配置 - if not configs: - default_config = get_dingtalk_config() - if default_config["webhook"]: - configs.append(default_config) - return configs