From 861b394e4917a21ff2f8748cc5d3a9212dd99cac Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Fri, 15 May 2026 17:49:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=91=E9=81=93=E8=A7=82=E6=B5=8B=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=97=B6=E9=97=B4=E4=BF=AE=E6=AD=A3=E4=B8=BAAMSC/AMOS?= =?UTF-8?q?=E8=A7=82=E6=B5=8B=E6=97=B6=E9=97=B4=EF=BC=8C=E6=98=BE=E7=A4=BA?= =?UTF-8?q?HH:MM=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/app/api/city/[name]/route.ts | 3 +++ .../dashboard/DetailMiniTemperatureChart.tsx | 4 ++-- .../scan-terminal/AiCityTemperatureChart.tsx | 4 ++-- frontend/lib/chart-utils.ts | 17 ++++++++++------- src/utils/telegram_push.py | 5 ++++- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/frontend/app/api/city/[name]/route.ts b/frontend/app/api/city/[name]/route.ts index 5fa5e8ca..67971d38 100644 --- a/frontend/app/api/city/[name]/route.ts +++ b/frontend/app/api/city/[name]/route.ts @@ -66,6 +66,9 @@ function buildFallbackCityDetail(name: string, depth: string, summary: Record + callback: (value, index) => typeof index === "number" && index % 4 === 0 - ? chartData.times[index] + ? String(value) : "", color: "#6B7A90", font: { size: 10 }, diff --git a/frontend/components/dashboard/scan-terminal/AiCityTemperatureChart.tsx b/frontend/components/dashboard/scan-terminal/AiCityTemperatureChart.tsx index f8d8c88c..cd1df1e1 100644 --- a/frontend/components/dashboard/scan-terminal/AiCityTemperatureChart.tsx +++ b/frontend/components/dashboard/scan-terminal/AiCityTemperatureChart.tsx @@ -174,9 +174,9 @@ export const AiCityTemperatureChart = memo(function AiCityTemperatureChart({ det x: { grid: { color: "rgba(159, 178, 199, 0.08)" }, ticks: { - callback: (_value, index) => + callback: (value, index) => typeof index === "number" && index % 3 === 0 - ? chartData.times[index] + ? String(value) : "", color: "#6B7A90", font: { size: 10 }, diff --git a/frontend/lib/chart-utils.ts b/frontend/lib/chart-utils.ts index 41df65fb..3bdebe6f 100644 --- a/frontend/lib/chart-utils.ts +++ b/frontend/lib/chart-utils.ts @@ -370,13 +370,16 @@ export function getTemperatureChartData( const hourly = detail.hourly || {}; const rawTimes = Array.isArray(hourly.times) ? hourly.times : []; const rawTemps = Array.isArray(hourly.temps) ? hourly.temps : []; - const times = rawTimes - .map((time) => String(time || "").trim()) - .filter(Boolean); - const temps = times.map((_, index) => { - const value = Number(rawTemps[index]); - return Number.isFinite(value) ? value : null; - }); + const validEntries = rawTimes + .map((time, index) => ({ + tail: String(time || "").trim(), + value: Number(rawTemps[index]), + })) + .filter((entry) => entry.tail !== ""); + const times = validEntries.map((entry) => entry.tail); + const temps = validEntries.map((entry) => + Number.isFinite(entry.value) ? entry.value : null, + ); const suppressAnkaraMgmObservation = isTurkishMgmCity(detail); if (!times.length) return null; diff --git a/src/utils/telegram_push.py b/src/utils/telegram_push.py index 6f7fad51..63595af5 100644 --- a/src/utils/telegram_push.py +++ b/src/utils/telegram_push.py @@ -990,7 +990,10 @@ def _run_high_freq_airport_cycle( # 用观测数据时间而非当前本地时间 airport_cur = city_weather.get("airport_current") or {} - obs_local = airport_cur.get("obs_time") or city_weather.get("local_time") or "" + amos_obs = (city_weather.get("amos") or {}).get("observation_time_local") or "" + if amos_obs and len(str(amos_obs)) >= 16: + amos_obs = str(amos_obs)[11:16] # "2026-05-15 17:32:00" → "17:32" + obs_local = amos_obs or airport_cur.get("obs_time") or city_weather.get("local_time") or "" message = _build_airport_status_message(city, city_weather, deb_pred, obs_local) sent = False