From bec76e39776f4b053a94a888f767a27594c99b1c Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Fri, 6 Mar 2026 10:37:18 +0800 Subject: [PATCH] feat: implement a rule-based weather/market alert engine with functions for momentum, forecast breakthrough, and kill zone alerts. --- src/analysis/market_alert_engine.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/analysis/market_alert_engine.py b/src/analysis/market_alert_engine.py index 3e1d2f04..a555648a 100644 --- a/src/analysis/market_alert_engine.py +++ b/src/analysis/market_alert_engine.py @@ -527,6 +527,7 @@ def _build_telegram_messages( if current_temp is None: return {"zh": "", "en": ""} + has_active_trigger = any(rule.get("triggered") for rule in rules.values()) types_cn = _join_trigger_types_cn(rules) or "η›˜ε£εΌ‚εŠ¨" delta_temp = _sf(momentum.get("delta_temp")) delta_min = momentum.get("delta_minutes") @@ -569,9 +570,11 @@ def _build_telegram_messages( advice = _build_advice_cn(rules, temp_symbol) final_map = map_url or "https://polyweather-pro.vercel.app/" + title_zh = "🚨 PolyWeather εΌ‚εŠ¨ι’„θ­¦" if has_active_trigger else "πŸ“ PolyWeather ηŠΆζ€εΏ«η…§" + title_en = "🚨 PolyWeather Alert" if has_active_trigger else "πŸ“ PolyWeather Status" lines_zh = [ - f"🚨 PolyWeather εΌ‚εŠ¨ι’„θ­¦ [{city_name}]", + f"{title_zh} [{city_name}]", "", f"η±»εž‹οΌš{types_cn}", f"εŠ¨ζ€οΌš{dyn}", @@ -597,7 +600,7 @@ def _build_telegram_messages( type_en_str = " + ".join(type_en) or "Market anomaly" lines_en = [ - f"🚨 PolyWeather Alert [{city_name}]", + f"{title_en} [{city_name}]", "", f"Type: {type_en_str}", f"Now: {current_temp:.1f}{temp_symbol}",