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:
2026-04-23 22:57:23 +08:00
parent 3cca4d79c4
commit 4a500ca5bf
5 changed files with 230 additions and 8 deletions

View File

@@ -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:
"""从环境变量获取数据库配置"""