feat(notify): 支持钉钉多群推送 & 添加轮动策略核心逻辑文档
- settings.py: 新增 get_all_dingtalk_configs() 自动扫描所有钉钉群配置 - notify.py: 新增 send_to_all_groups() 多群推送函数 - daily_scheduler.py: 报告和错误通知改用多群推送 - .env: 添加第二个钉钉群配置 (DINGTALK_WEBHOOK_2/SECRET_2) - 轮动策略核心逻辑.md: 策略核心逻辑总结文档
This commit is contained in:
@@ -27,13 +27,29 @@ DATA_CACHE_DIR.mkdir(exist_ok=True)
|
||||
|
||||
# ==================== 钉钉配置 ====================
|
||||
def get_dingtalk_config() -> dict:
|
||||
"""从环境变量获取钉钉配置"""
|
||||
"""从环境变量获取钉钉配置(默认群1)"""
|
||||
return {
|
||||
"webhook": os.getenv("DINGTALK_WEBHOOK", ""),
|
||||
"secret": os.getenv("DINGTALK_SECRET", ""),
|
||||
}
|
||||
|
||||
|
||||
def get_all_dingtalk_configs() -> list[dict]:
|
||||
"""获取所有已配置的钉钉群配置列表"""
|
||||
configs = []
|
||||
# 群1(主群)
|
||||
cfg1 = get_dingtalk_config()
|
||||
if cfg1["webhook"]:
|
||||
configs.append(cfg1)
|
||||
# 群2 及后续扩展:DINGTALK_WEBHOOK_2, _3, ...
|
||||
for i in range(2, 10):
|
||||
webhook = os.getenv(f"DINGTALK_WEBHOOK_{i}", "")
|
||||
secret = os.getenv(f"DINGTALK_SECRET_{i}", "")
|
||||
if webhook:
|
||||
configs.append({"webhook": webhook, "secret": secret})
|
||||
return configs
|
||||
|
||||
|
||||
# ==================== 数据库配置 ====================
|
||||
def get_db_config() -> dict:
|
||||
"""从环境变量获取数据库配置"""
|
||||
|
||||
Reference in New Issue
Block a user