From 2dcc700cd7ee7e90e28389925b77004d222f57d0 Mon Sep 17 00:00:00 2001
From: AmandaloveYang <2569718930@qq.com>
Date: Sat, 21 Feb 2026 10:50:13 +0800
Subject: [PATCH] feat: Add support for plain text city input and improve
weather command error handling.
---
bot_listener.py | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/bot_listener.py b/bot_listener.py
index 480392de..182a2484 100644
--- a/bot_listener.py
+++ b/bot_listener.py
@@ -126,6 +126,22 @@ def analyze_weather_trend(weather_data, temp_symbol):
f"90% 区间 [{ens_p10}{temp_symbol} - {ens_p90}{temp_symbol}],"
f"波动幅度 {ens_range:.1f}°。"
)
+ # 确定性预报 vs 集合分布偏差检测
+ if om_today is not None:
+ if om_today > ens_p90:
+ delta = om_today - ens_median
+ insights.append(
+ f"⚡ 预报偏高警告:确定性预报 {om_today}{temp_symbol} "
+ f"超过了集合 90% 上限 ({ens_p90}{temp_symbol}),"
+ f"比中位数高 {delta:.1f}°。实际高温更可能接近 {ens_median}{temp_symbol}。"
+ )
+ elif om_today < ens_p10:
+ delta = ens_median - om_today
+ insights.append(
+ f"⚡ 预报偏低警告:确定性预报 {om_today}{temp_symbol} "
+ f"低于集合 90% 下限 ({ens_p10}{temp_symbol}),"
+ f"比中位数低 {delta:.1f}°。实际高温更可能接近 {ens_median}{temp_symbol}。"
+ )
# === 核心判断:实测是否已超预报 ===
is_breakthrough = False