Commit Graph

1158 Commits

Author SHA1 Message Date
2569718930@qq.com 6eca1da3f9 修复测试:aurora→denver 城市 key 重命名后更新断言 2026-05-14 01:27:04 +08:00
2569718930@qq.com 4ab749c136 市场监控新增 11 个美国城市(NY/LA/Chicago/Denver 等) 2026-05-14 01:17:09 +08:00
2569718930@qq.com d2472fa0c2 市场监控 1 分钟强制刷新 11 城数据 2026-05-14 01:13:53 +08:00
2569718930@qq.com 6c4f43fba6 Aurora→Denver 重命名 + 接入 MADIS HFMETAR 5 分钟数据源 2026-05-14 01:09:17 +08:00
2569718930@qq.com 79944432fb MonitorPanel 自动触发未加载城市的 ensureCityDetail 2026-05-14 00:52:14 +08:00
2569718930@qq.com c006d13fea MonitorPanel 从独立 API 改为复用 DashboardStore 数据,砍掉 /api/m 和 /m/json 2026-05-14 00:43:19 +08:00
2569718930@qq.com 7a28810f25 监控页刷新间隔 30s → 60s 2026-05-14 00:32:30 +08:00
2569718930@qq.com c5fdb93ae5 监控页:后端 30s 缓存 + 前端 loading 态 2026-05-14 00:29:51 +08:00
2569718930@qq.com 2202f8e211 砍掉 /m HTML 页面,只保留 /m/json 给 React 组件用 2026-05-14 00:23:03 +08:00
2569718930@qq.com fc48795299 监控页从 iframe 改为原生 React 组件:无加载延迟,30s JSON 轮询 2026-05-14 00:18:26 +08:00
2569718930@qq.com fd12c15518 Monitor tab 中文名+iframe 常驻避免重新加载 2026-05-14 00:13:32 +08:00
2569718930@qq.com 22b414f69e 监控页时间改为用户本地时间(JS toLocaleTimeString) 2026-05-14 00:10:43 +08:00
2569718930@qq.com 5e653c2ec1 前端接入监控页面:新增 Monitor 标签页 + /api/m 代理 2026-05-14 00:04:26 +08:00
2569718930@qq.com 9dd59ceb4e 修复 ruff 风格:多行语句、bare except → except Exception 2026-05-13 23:55:54 +08:00
2569718930@qq.com a9b1449680 放弃 Jinja2,改用 f-string 直接拼 HTML,零模板引擎依赖 2026-05-13 23:54:53 +08:00
2569718930@qq.com a7ba7aed3a Debug:简化 context 排查 Jinja2 500 2026-05-13 23:46:18 +08:00
2569718930@qq.com 1240fbb673 跑道数据改用 tuple 避免 Jinja2 dict unhashable 错误 2026-05-13 23:41:31 +08:00
2569718930@qq.com d56889c2e5 修复 Jinja2 模板 dict 访问方式和条件表达式 2026-05-13 23:38:06 +08:00
2569718930@qq.com 1fba498c37 添加 jinja2 依赖 2026-05-13 23:28:52 +08:00
2569718930@qq.com b94037f328 路由 /monitor → /m,URL 更短 2026-05-13 23:24:26 +08:00
2569718930@qq.com 1493c72138 删除 Rust 监控项目及旧文档,已用 Python 重写替代 2026-05-13 23:22:13 +08:00
2569718930@qq.com a221b3e969 用 Python 重写市场监控网页版:FastAPI+Jinja2+HTMX,复用 _analyze() 2026-05-13 23:19:49 +08:00
2569718930@qq.com bfffbdedd0 恢复模板中被吃掉的跑道数据显示区块 2026-05-13 22:07:36 +08:00
2569718930@qq.com 26fff84c3a 修复跑道数据:用 LIKE 查询所有 RKSI_RWY_%,不再硬编码索引 2026-05-13 22:00:00 +08:00
2569718930@qq.com 7038b14904 网页版卡片时间改用 obs_time(数据源时间戳),支持 ISO/epoch/Naive 多种格式解析 2026-05-13 21:47:55 +08:00
2569718930@qq.com c9006f250f 网页版卡片时间改为观测数据时间(基于 created_at),不再用当前本地时间 2026-05-13 21:45:05 +08:00
2569718930@qq.com 1a4d75c126 推送消息时间改为观测数据时间,不再用当前本地时间 2026-05-13 21:43:26 +08:00
2569718930@qq.com 7555da8e6a 更新html 2026-05-13 21:26:26 +08:00
2569718930@qq.com d97bb76480 移除 city_daily_max 表及 upsert 逻辑,日最高已改用 intraday_path_snapshots_store 2026-05-13 21:14:28 +08:00
2569718930@qq.com c779b20a4f 日最高改用 intraday_path_snapshots_store(已有实时数据,无需等 Docker rebuild) 2026-05-13 21:10:39 +08:00
2569718930@qq.com cac84dcc0c 修复今日最高:新增 city_daily_max 表,所有数据源写入日最高
- DB: city_daily_max(icao,max_temp,obs_date,max_time) upsert
- AMOS/JMA/KNMI/FMI/HKO/METAR集群/CWA 采集后均写入
- Rust: 读 city_daily_max 获取准确日最高 + 时间
- 卡片恢复 High 行,显示最高温 + 达成时间
- new_high 提醒也基于真实日最高重新生效

Tested: cargo build + ruff check 均通过
2026-05-13 20:50:46 +08:00
2569718930@qq.com e734c93b34 移除不准确的今日最高,改为按当前温度从高到低排序
- airport_obs_log 仅保留 2h 数据,max_so_far 不准确
- 去掉卡片 Today High 行,趋势箭头移到 Obs 同行
- 卡片按 current_temp 降序排列,无数据沉底
- 通知文案简化
2026-05-13 20:44:09 +08:00
2569718930@qq.com 067ee63ba4 首尔/釜山跑道数据:Python 存 RKSI_RWY_0/1,Rust 查询展示
- weather_sources: AMOS 采集时每条跑道单独写 airport_obs_log
- Rust: 按 RKSI_RWY_0、RKSI_RWY_1 等 icao 查询跑道温度
- 跑道标签 18L/36R、18R/36L 写死在 config 中
2026-05-13 20:39:15 +08:00
2569718930@qq.com 88918677c0 监控页面:英文城市名 + 新高浏览器提醒(可开关)
- 卡片标题改为英文名(Seoul/Busan/Tokyo 等)
- 温度突破今日最高 0.3°C 时触发浏览器 Notification
- 右上角 🔔 按钮开关提醒,状态存 localStorage
- 同日同城同一温度不重复提醒(notify_highs 去重)
- 页面标题和标签全英文化

Tested: cargo build --release 通过
2026-05-13 20:33:59 +08:00
2569718930@qq.com 041c9fb4fa 撤回 METAR 兜底,改走 CWA 10min 实时数据(需配 API key) 2026-05-13 20:20:16 +08:00
2569718930@qq.com 1d3ccbb7cf 台北走 METAR 集群兜底:ICAO 从 CWA 站号 466920 改为 RCSS
- weather_sources: 放开 cwa settlement_source 的 METAR 拦截
- Rust: ICAO 改用 RCSS,匹配 METAR 集群数据
- 原因: CWA_OPEN_DATA_AUTH 未配置,CWA 接口静默失败致 airport_obs_log 无数据
2026-05-13 20:17:12 +08:00
2569718930@qq.com 8dd212f0af 卡片放大:3列网格、52px温度大字、加宽间距、整体放大 ~30% 2026-05-13 20:05:16 +08:00
2569718930@qq.com ded09df749 监控页面布局对齐文档:时区后缀、暖色高温、新高紫光、趋势同行
- 当地时间加时区缩写(KST/JST/HKT 等)
- 温度 >= 30°C 暖橙色高亮
- 新高标记:紫色边框 + 紫色温度数字
- "今日最高" 与趋势箭头同行,对齐 docs 卡片布局
- CSS: temp-value.warm, new-high-card/high-val 样式
2026-05-13 20:03:18 +08:00
2569718930@qq.com 239c9c446d 监控页面增强:温度变化闪绿光、观测N分钟前、更新戳可见
- 每张卡片加"观测 X 分钟前"时间感知
- 温度值变化时卡片边框闪绿光(HTMX afterSwap 事件)
- 更新时间戳移入 HTMX 局部刷新区,30s 刷新可见
- CSS 加 obs-age 样式
2026-05-13 19:58:19 +08:00
2569718930@qq.com 538cc7db2d 监控页面刷新间隔 60s → 30s 2026-05-13 19:53:13 +08:00
2569718930@qq.com 6055f8328e 修正 DB 路径:/var/lib/polyweather/polyweather.db(非 data/ 本地副本) 2026-05-13 19:51:25 +08:00
2569718930@qq.com 611811101b 修正 service DB 路径为 /root/PolyWeather/data/polyweather.db 2026-05-13 19:39:26 +08:00
2569718930@qq.com 9e80719cbe 添加 market-monitor systemd service 文件 2026-05-13 19:34:21 +08:00
2569718930@qq.com db9071101a @
添加市场监控 Rust 网页版:Axum+Askama+HTMX,直读 SQLite

- 11 城市卡片网格,暗色主题,响应式布局
- 60s HTMX 轮询局部刷新
- 当前温度、今日最高、趋势箭头(线性回归)
- 首尔/釜山跑道温度(预留)
- 零 Python 依赖,编译后 ~3MB 二进制

Constraint: 读 POLYWEATHER_DB_PATH 指向的 SQLite
@
2026-05-13 19:24:24 +08:00
2569718930@qq.com 86467d4e92 HK/LFS 数据延迟重试:obs_time 未变且距上次推送超 9min 时等 4s 重拉
HKO API 在 x7 分发布数据但有 3-5s 延迟,推送检查可能刚好在
API 更新前拿到旧数据被去重跳过。现在检测到数据过期时等待重拉。

Constraint: 仅影响 hong kong / lau fau shan,其他城市无额外延迟
2026-05-13 15:29:28 +08:00
2569718930@qq.com 1680bd5871 香港/流浮山推送间隔改为 60s:obs_time去重防重复,x7分放数据即时捕获
HKO 每 10min 在 x7 分(07/17/27…)发布数据,600s 间隔容易与
发布时刻错位导致延迟一整轮。改为 60s 轮询,obs_time 去重机制
保证同一观测不重复推送。
2026-05-13 15:08:34 +08:00
2569718930@qq.com 6802f647b3 Busan 高温窗口 fallback:peak 偏窄(13-14)时拓宽到 12-16
沿海城市受海风影响,Open-Meteo 算出的 peak 窗口仅 1 小时,
导致 time_ok 在 16:01 就关窗。加 _AIRPORT_PEAK_FALLBACK,
last_h - first_h < 3 时用 fallback 值。

Constraint: 仅影响 Busan,其他城市无 fallback 保持原逻辑
2026-05-13 15:04:54 +08:00
2569718930@qq.com 557882600e 添加市场监控频道 Rust 独立网页版方案文档
直读 SQLite airport_obs_log,零 Python 依赖,Axum+Askama+HTMX 纯展示
2026-05-13 14:42:19 +08:00
2569718930@qq.com 40f231b76d 优化 Vercel Fluid CPU:API加CDN缓存、缩小middleware范围、跳过公共API的Supabase身份转发
- 7条GET路由加 s-maxage + stale-while-revalidate,fetch 改为 next revalidate
- middleware matcher 从全匹配缩小到9条需auth的路径,移除 isStaticAsset
- 8条公共API路由加 includeSupabaseIdentity: false
- backend-auth getSession 为空时跳过 getUser
- subscription-help 加 I18nProvider,移除 force-dynamic → 静态预渲染
- next.config.mjs 加静态资源 immutable 缓存头

Tested: npx tsc --noEmit 通过,npm run build 通过
2026-05-13 14:23:04 +08:00
2569718930@qq.com 30b289ec8f 修复机场高频推送:东京ICAO不匹配、釜山缺趋势数据、港/流浮频率及obs_time去重
- 东京 HIGH_FREQ_AIRPORT_ICAO 从 RJTT 改为 JMA 站号 44166
- 釜山 METAR 集群数据写入 airport_obs_log 供趋势检测
- 香港/流浮山推送间隔从 60s 改为 600s(匹配实际 10min 更新)
- 新增 obs_time 去重:同一观测数据不重复推送

Constraint: JMA AMeDAS 使用站号而非 ICAO 作为站点标识
Tested: ruff check 通过
2026-05-13 13:45:00 +08:00