fix(config): 修复钉钉多群配置读取逻辑
问题:原逻辑从 i=1 开始查找 DINGTALK_WEBHOOK_1(不存在), 导致群2(DINGTALK_WEBHOOK_2)未被读取。 修复: - 群1使用不带编号的 DINGTALK_WEBHOOK + DINGTALK_SECRET - 从 i=2 开始读取编号配置 验证:成功读取到2个钉钉群配置
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user