feat: Implement multi-source weather data collection with caching, rate limiting, and disk persistence.

This commit is contained in:
2569718930@qq.com
2026-03-20 13:35:34 +08:00
parent da9b0b36f7
commit dbf10253a8
7 changed files with 239 additions and 91 deletions
+81
View File
@@ -357,6 +357,77 @@ CITY_REGISTRY = {
"distance_km": 13.0,
"warning": "机场位于东北侧开阔区,午后混合层增强时与核心城区体感温度可能出现偏差。",
},
"chengdu": {
"name": "Chengdu",
"lat": 30.5785,
"lon": 103.9471,
"icao": "ZUUU",
"tz_offset": 28800,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "medium",
"risk_emoji": "🟡",
"airport_name": "成都双流国际机场",
"distance_km": 16.0,
"warning": "盆地地形,夜间降温较慢,多云雾影响日照升温。",
},
"chongqing": {
"name": "Chongqing",
"lat": 29.7196,
"lon": 106.6416,
"icao": "ZUCK",
"tz_offset": 28800,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "high",
"risk_emoji": "🔴",
"airport_name": "重庆江北国际机场",
"distance_km": 19.0,
"warning": "四大火炉之一,夏季持续高温,夜间温度偏高,湿度大。",
},
"shenzhen": {
"name": "Shenzhen",
"lat": 22.6393,
"lon": 113.8107,
"icao": "ZGSZ",
"tz_offset": 28800,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "medium",
"risk_emoji": "🟡",
"airport_name": "深圳宝安国际机场",
"distance_km": 32.0,
"warning": "近海受海洋调节,热岛效应强,日夜温差较小。",
},
"beijing": {
"name": "Beijing",
"lat": 40.0801,
"lon": 116.5846,
"icao": "ZBAA",
"tz_offset": 28800,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "medium",
"risk_emoji": "🟡",
"airport_name": "北京首都国际机场",
"distance_km": 25.0,
"warning": "北方内陆,夏季干热,冬季寒冷,春秋易受风沙影响。",
},
"wuhan": {
"name": "Wuhan",
"lat": 30.7838,
"lon": 114.2081,
"icao": "ZHHH",
"tz_offset": 28800,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "high",
"risk_emoji": "🔴",
"airport_name": "武汉天河国际机场",
"distance_km": 26.0,
"warning": "江汉平原,水汽充足,夏季常现长时闷热高温。",
},
}
ALIASES = {
@@ -406,4 +477,14 @@ ALIASES = {
"華沙": "warsaw",
"马德里": "madrid",
"馬德里": "madrid",
"ctu": "chengdu", "cd": "chengdu",
"ckg": "chongqing", "cq": "chongqing",
"szx": "shenzhen", "sz": "shenzhen",
"pek": "beijing", "bjs": "beijing", "bj": "beijing",
"wuh": "wuhan", "wh": "wuhan",
"成都": "chengdu",
"重庆": "chongqing",
"深圳": "shenzhen",
"北京": "beijing",
"武汉": "wuhan",
}