feat: Add a new WeatherDataCollector module for multi-source weather data retrieval and update bot_listener.py.

This commit is contained in:
2569718930@qq.com
2026-02-08 02:48:25 +08:00
parent d0c8ac3451
commit d7777384ec
2 changed files with 14 additions and 3 deletions
+4
View File
@@ -191,6 +191,10 @@ def start_bot():
nws_high = nws.get("today_high")
for i, (d, t) in enumerate(zip(dates[:7], max_temps[:7])):
# 跳过无效数据
if t is None:
continue
day_label = "今天" if d == city_today_str else d[5:]
indicator = "👉 " if d == city_today_str else " "
+10 -3
View File
@@ -425,10 +425,17 @@ class WeatherDataCollector:
# 智能合并:HRRR 仅覆盖 48 小时,远期用 ECMWF 补全
merged_max = []
for i in range(len(ecmwf_max)):
if i < len(hrrr_max) and hrrr_max[i] is not None:
merged_max.append(hrrr_max[i]) # 短期用 HRRR
hrrr_val = hrrr_max[i] if i < len(hrrr_max) else None
ecmwf_val = ecmwf_max[i] if i < len(ecmwf_max) else None
# 优先 HRRR,其次 ECMWF,都没有就跳过
if hrrr_val is not None:
merged_max.append(hrrr_val)
elif ecmwf_val is not None:
merged_max.append(ecmwf_val)
else:
merged_max.append(ecmwf_max[i]) # 远期用 ECMWF
# 两个都没有,用占位符 (理论上不应该发生)
merged_max.append(ecmwf_val) # None
daily_data["temperature_2m_max"] = merged_max
# 映射逐小时数据