首尔釜山改为10分钟推送;当前温度破日高时加新高标记

AMOS 1分钟数据改为每10分钟推送一次避免刷屏。
当当前温度超过今日实测最高≥0.3°C时,标题行追加🔶新高标记。
This commit is contained in:
2569718930@qq.com
2026-05-13 00:38:05 +08:00
parent fe9bf61ad6
commit 8a8a47e31d
+16 -4
View File
@@ -776,7 +776,20 @@ def _build_airport_status_message(
if station_temp is None:
station_temp = current.get("temp")
lines = [header, ""]
# Determine current max temp for new-high check
latest_temp = station_temp
if runway_temps:
valid = [t for (t, _d) in runway_temps if t is not None]
if valid:
latest_temp = max(valid)
# Check if breaking today's high
max_so_far, max_temp_time = _get_airport_daily_high(city_weather)
new_high = (latest_temp is not None and max_so_far is not None
and latest_temp - max_so_far >= 0.3)
flag = " \U0001f536" if new_high else ""
lines = [header + flag, ""]
runway_shown = False
if runway_pairs and runway_temps and len(runway_pairs) == len(runway_temps):
for (r1, r2), (t, _d) in zip(runway_pairs, runway_temps):
@@ -788,7 +801,6 @@ def _build_airport_status_message(
lines.append(f"{label}{station_temp:.1f}°C")
if deb_pred is not None:
lines.append(f"今日DEB预报最高:{deb_pred:.1f}°C")
max_so_far, max_temp_time = _get_airport_daily_high(city_weather)
if max_so_far is not None:
time_str = f"{max_temp_time}" if max_temp_time else ""
lines.append(f"今日实测最高:{max_so_far:.1f}°C{time_str}")
@@ -810,8 +822,8 @@ def _get_airport_daily_high(city_weather: Dict[str, Any]):
# Per-city push interval matching native data refresh rate (seconds)
_AIRPORT_PUSH_INTERVAL = {
"seoul": 60, # AMOS 1-min
"busan": 60, # AMOS 1-min
"seoul": 600, # AMOS 1-min → 10min push
"busan": 600, # AMOS 1-min → 10min push
"tokyo": 600, # JMA 10-min
"ankara": 600, # MGM ~10-min
"helsinki": 600, # FMI 10-min