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 群1: DINGTALK_WEBHOOK + DINGTALK_SECRET不带编号
DINGTALK_SECRET_1=xxx 群2: DINGTALK_WEBHOOK_2 + DINGTALK_SECRET_2
DINGTALK_WEBHOOK_2=xxx 群3: DINGTALK_WEBHOOK_3 + DINGTALK_SECRET_3
DINGTALK_SECRET_2=xxx
... ...
如果没有编号配置,则使用 DINGTALK_WEBHOOK 和 DINGTALK_SECRET
Returns: Returns:
list: 配置列表,每项包含 webhook 和 secret list: 配置列表,每项包含 webhook 和 secret
""" """
configs = [] configs = []
# 查找编号配置 # 1. 先读取不带编号的默认配置群1
i = 1 default_config = get_dingtalk_config()
if default_config["webhook"]:
configs.append(default_config)
# 2. 从 i=2 开始读取编号配置群2、群3...
i = 2
while True: while True:
webhook = os.getenv(f"DINGTALK_WEBHOOK_{i}", "") webhook = os.getenv(f"DINGTALK_WEBHOOK_{i}", "")
secret = os.getenv(f"DINGTALK_SECRET_{i}", "") secret = os.getenv(f"DINGTALK_SECRET_{i}", "")
@@ -68,12 +70,6 @@ def get_all_dingtalk_configs() -> List[Dict[str, str]]:
}) })
i += 1 i += 1
# 如果没有编号配置,使用默认配置
if not configs:
default_config = get_dingtalk_config()
if default_config["webhook"]:
configs.append(default_config)
return configs return configs