fix(config): 修复钉钉多群配置读取逻辑

问题:原逻辑从 i=1 开始查找 DINGTALK_WEBHOOK_1(不存在),
导致群2(DINGTALK_WEBHOOK_2)未被读取。

修复:
- 群1使用不带编号的 DINGTALK_WEBHOOK + DINGTALK_SECRET
- 从 i=2 开始读取编号配置

验证:成功读取到2个钉钉群配置
This commit is contained in:
2026-05-18 22:20:28 +08:00
parent 8476d0e7cd
commit 3ca403f38a

View File

@@ -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