diff --git a/bot_listener.py b/bot_listener.py index effc7214..296bf8d1 100644 --- a/bot_listener.py +++ b/bot_listener.py @@ -155,7 +155,8 @@ def analyze_weather_trend(weather_data, temp_symbol): # 5. 特殊天气现象 wx_desc = metar.get("current", {}).get("wx_desc") - mgm_rain = mgm.get("current", {}).get("rain_24h") or 0 + has_mgm = bool(mgm.get("current")) + mgm_rain = mgm.get("current", {}).get("rain_24h") if wx_desc: wx_upper = wx_desc.upper().strip() wx_tokens = wx_upper.split() @@ -165,10 +166,10 @@ def analyze_weather_trend(weather_data, temp_symbol): fog_codes = {"FG", "BR", "HZ", "MIST", "FOG", "FZFG"} if rain_codes & set(wx_tokens): - if mgm_rain > 0: + if has_mgm and mgm_rain and mgm_rain > 0: insights.append(f"🌧️ 在下雨:已累计 {mgm_rain}mm,雨水蒸发会吸收热量,温度很难涨上去。") else: - insights.append(f"🌦️ 有零星小雨:METAR 探测到轻微降水,但雨量极小(MGM 记录 0mm),对升温影响有限。") + insights.append(f"🌧️ 在下雨:METAR 探测到降水,雨水蒸发会吸收热量,升温会受阻。") elif snow_codes & set(wx_tokens): insights.append(f"❄️ 在下雪/冰雹:温度会一直低迷。") elif fog_codes & set(wx_tokens):