feat: Add multi-source weather data collector supporting OpenWeatherMap, Visual Crossing, and NOAA METAR.

This commit is contained in:
2569718930@qq.com
2026-02-08 03:18:02 +08:00
parent f2dac9b622
commit 941b45abd2
+5 -7
View File
@@ -392,11 +392,11 @@ class WeatherDataCollector:
"_t": int(time.time()), # 禁用缓存,强制刷新 "_t": int(time.time()), # 禁用缓存,强制刷新
} }
# 对于美国市场,使用华氏度 # 显式指定单位,防止 API 默认行为漂移
if use_fahrenheit: if use_fahrenheit:
params["temperature_unit"] = "fahrenheit" params["temperature_unit"] = "fahrenheit"
# 不使用 models 参数,让 Open-Meteo 用默认最优模型 else:
# NWS 已提供官方预报对比,无需 HRRR params["temperature_unit"] = "celsius"
response = self.session.get( response = self.session.get(
url, url,
@@ -628,10 +628,8 @@ class WeatherDataCollector:
"st. louis", "st. louis",
} }
city_lower = city.lower().strip() city_lower = city.lower().strip()
# 检查城市名是否美国城市列表中(支持完全匹配或包含关系 # 严格判断是否美国市场(必须完全匹配列表或缩写
use_fahrenheit = city_lower in us_cities or any( use_fahrenheit = city_lower in us_cities
us_city in city_lower for us_city in us_cities
)
if use_fahrenheit: if use_fahrenheit:
logger.info(f"🌡️ {city} 使用华氏度 (°F)") logger.info(f"🌡️ {city} 使用华氏度 (°F)")