v1.8.0: 🌙 静默期 - 舆情监控/持仓跟踪/定时报告三大自动化任务独立配置静默时段, 命中时段不发送邮件(多段/跨午夜, 日志标quiet, 水位照常推进不补发积压)

This commit is contained in:
2026-08-20 23:43:02 +08:00
parent 4da5e091a5
commit 9340577f7b
10 changed files with 196 additions and 32 deletions
+14 -1
View File
@@ -561,7 +561,7 @@ def api_backtest_rebuild():
@app.route("/api/settings")
def api_settings():
from settings import all_settings, mail_config, monitor_config, monitor_state, \
tracking_config, tracking_state
tracking_config, tracking_state, quiet_config
from config import LLM_BASE_URL, LLM_API_KEY, LLM_MODEL
s = all_settings()
mail = mail_config()
@@ -571,6 +571,11 @@ def api_settings():
"mail": mail,
"monitor": mono,
"tracking": {**track, **tracking_state()},
"quiet": { # 各自动化任务的静默期配置
"monitor": quiet_config("monitor"),
"tracking": quiet_config("tracking"),
"report": quiet_config("report"),
},
"llm": {
"base_url": s.get("llm_base_url", LLM_BASE_URL),
"api_key": s.get("llm_api_key", LLM_API_KEY),
@@ -614,6 +619,14 @@ def api_settings_save():
set_setting("tracking_enabled", _bool_str(track["tracking_enabled"]))
if "tracking_notify" in track:
set_setting("tracking_notify", _bool_str(track["tracking_notify"]))
# 静默期(各自动化任务独立配置)
quiet = body.get("quiet") or {}
for prefix in ("monitor", "tracking", "report"):
q = quiet.get(prefix) or {}
if "enabled" in q:
set_setting(f"{prefix}_quiet_enabled", _bool_str(q["enabled"]))
if "ranges" in q:
set_setting(f"{prefix}_quiet_ranges", str(q["ranges"] or "").strip())
return jsonify({"ok": True, "msg": "设置已保存"})