From 9aa6653364172a57a9568bab40d163835a546540 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Wed, 17 Jun 2026 00:19:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Taipei=20CWA=20=E6=97=A7?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=A6=86=E7=9B=96=E5=88=A4=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/services/latest_observation_overlay.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/web/services/latest_observation_overlay.py b/web/services/latest_observation_overlay.py index 9bc09f77..31fa64c3 100644 --- a/web/services/latest_observation_overlay.py +++ b/web/services/latest_observation_overlay.py @@ -1180,7 +1180,19 @@ def overlay_latest_cwa_observation(weather, city, payload, db=None): cwa_data.get("observation_time"), target_date, ): - cwa_data = None + cwa_epoch = parse_observation_epoch(cwa_data.get("observation_time")) + existing_epochs = [ + epoch + for epoch in ( + _block_epoch(payload.get("current")), + _block_epoch(payload.get("airport_primary")), + _block_epoch(payload.get("airport_current")), + ) + if epoch is not None + ] + latest_existing_epoch = max(existing_epochs) if existing_epochs else None + if cwa_epoch is None or (latest_existing_epoch is not None and cwa_epoch <= latest_existing_epoch): + cwa_data = None if not isinstance(cwa_data, dict): cwa_data = _latest_taipei_metar_fallback( weather,