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 |
|
2569718930@qq.com
|
9adcfdb203
|
放宽时间窗口:peak-4h 到 peak+2h(6小时)
|
2026-05-13 01:13:07 +08:00 |
|
2569718930@qq.com
|
cfb746300a
|
推送改为三条件高温窗口:时间 + 温度 + 趋势
1. 时间窗口:DEB 预测峰值时刻前后(peak_hour-2h 到 peak_hour+1.5h)
2. 温度窗口:按地形分三类(大陆 3.0°C / 海洋 2.0°C / 强海风 1.5°C)
3. 趋势窗口:最近 30-60 分钟持续升温(最后 3 条递增或当前 > 30min 前)
三个条件同时满足才推送。流浮山移除结算温度行。
|
2026-05-13 01:10:31 +08:00 |
|
2569718930@qq.com
|
a173da1b00
|
推送判断改为使用机场站点温度,统一判断与展示数据源
之前 proximity 检查用 city_weather.current.temp(通用温度/METAR),
但消息展示用 mgm_nearby 机场站点温度,两者不一致导致推送窗口错位。
现在统一从 mgm_nearby/amos 提取机场温度用于判断。
|
2026-05-13 00:54:19 +08:00 |
|
2569718930@qq.com
|
7372b7a73f
|
接入台北松山 RCSS CWA 10分钟实时温度;HKO 显示结算温度
台北通过现有 CWA 开放数据 API(站号 466920)接入高频推送。
香港/流浮山消息新增"结算温度"行,显示向下取整后的结算值。
Tested: pytest 176 passed, ruff check 通过
|
2026-05-13 00:47:58 +08:00 |
|
2569718930@qq.com
|
8a8a47e31d
|
首尔釜山改为10分钟推送;当前温度破日高时加新高标记
AMOS 1分钟数据改为每10分钟推送一次避免刷屏。
当当前温度超过今日实测最高≥0.3°C时,标题行追加🔶新高标记。
|
2026-05-13 00:38:05 +08:00 |
|
2569718930@qq.com
|
fe9bf61ad6
|
接入香港天文台 HKO + 流浮山 LFS 1分钟实时温度
HKO 公共天气 API 免费无注册,提供 1 分钟温度 CSV。
两个站点加入高频推送,与首尔/釜山同级。
Station: HK Observatory (HKO) 27.0°C, Lau Fau Shan (LFS) 25.9°C
Interval: 60s
Tested: pytest 176 passed, HKO API 实测通过
|
2026-05-13 00:33:56 +08:00 |
|
2569718930@qq.com
|
7084bdf1ec
|
修复首尔/釜山跑道温度偶发不展示:过滤 None 值并增加回退
AMOS 部分跑道对温度可能为 None(传感器暂时不可用),
之前直接 format None 导致静默跳过整组跑道显示。
改为只展示有效跑道对,全部不可用时回退到当前实测。
Tested: pytest 176 passed, AMOS 实测 runway_pairs=4 temperatures 2/4 valid
|
2026-05-13 00:07:46 +08:00 |
|
2569718930@qq.com
|
470cd6c95f
|
巴黎温度行标注"AROME预报"以区分于站点实测
八城中仅巴黎为模型数据,其余七城为机场站点实测。
消息中明确标注避免混淆。
Tested: pytest 176 passed, ruff check 通过
|
2026-05-13 00:01:38 +08:00 |
|
2569718930@qq.com
|
6f83b9d7ea
|
接入巴黎 Le Bourget AROME HD 15分钟模型预报数据
Météo-France 站点实测无法获取,改为通过 Open-Meteo 取 AROME France HD
15分钟模型温度。非实测数据,标注为模型预报类型。
巴黎跳过 obs_log 峰值检测(无站点观测日志)。
Constraint: AROME 为模型格点值非实测,与 AMOS/JMA/FMI 精度不同
Tested: pytest 176 passed, AROME API 实测返回 16.2°C
|
2026-05-12 23:59:06 +08:00 |
|
2569718930@qq.com
|
a3bef5185e
|
更新浏览器插件文档和版本:移除 Wunderground 引用,补充机场实时数据源
README 更新为当前数据源列表(AMOS/JMA/MGM/FMI/KNMI),
删除已废弃的 Wunderground/Manila/Karachi 引用。
版本升至 0.1.11。
Tested: ruff check 通过
|
2026-05-12 22:44:02 +08:00 |
|
2569718930@qq.com
|
963e717523
|
新增机场高频实时数据源参考文档 docs/AIRPORT_REALTIME_SOURCES.md
汇总已接入 7 城的数据源、频率、推送机制、消息模板和未接入原因。
|
2026-05-12 21:17:42 +08:00 |
|
2569718930@qq.com
|
a29ebfae27
|
今日实测最高改用 airport_current.max_so_far(METAR历史观测)
项目已有 airport_current 字段存储 METAR/AMOS 当天最高温及时间,
无需从 obs_log 自建。obs_log 保留期恢复为 2 小时。
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 21:15:57 +08:00 |
|
2569718930@qq.com
|
b1d0e41fd4
|
今日实测最高改为从 airport_obs_log 取值,延长保留至 24h
不再依赖 city_weather.current.max_so_far(可能来自 METAR 等非机场源),
直接从 airport_obs_log 的机场站点观测历史中计算当日最高温及时间。
obs_log 保留期从 2h 延长到 24h 以支撑跨天查询。
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 21:12:53 +08:00 |
|
2569718930@qq.com
|
c8eed2f315
|
统一机场消息模板:英文名/机场 + 当前实测 + DEB预报 + 实测最高
所有城市改为统一三段式:
Seoul / Incheon 16:03
当前实测:14.6°C
今日DEB预报最高:18.2°C
今日实测最高:16.5°C(15:30)
首尔/釜山保留跑道对温度展示。
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 21:08:43 +08:00 |
|
2569718930@qq.com
|
f7a453e39b
|
机场消息新增当日已出现最高温及时间
每城显示三行:当前温度、日内最高+时间、DEB 预测。
所有六城统一格式。
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 21:04:48 +08:00 |
|
2569718930@qq.com
|
191be9c5fd
|
机场温度取值增加 METAR 兜底:避免高频源不可用时出现空行
当 KNMI/FMI/JMA/MGM 数据未就绪时回退到 current.temp,
确保消息至少显示一个温度值而非空白。
Constraint: 兜底温度为 METAR 整数精度,待高频源恢复后自动切回小数
Tested: ruff check 通过
|
2026-05-12 21:01:04 +08:00 |
|
2569718930@qq.com
|
12c2b39b16
|
接入伊斯坦布尔机场 MGM 17058 高频推送
伊斯坦布尔新机场 (LTFM, MGM 17058) 加入 10 分钟级推送队列,
obs_log 已有 MGM 数据覆盖,只需加入高频城市列表。
马德里 AEMET 注册地址:https://opendata.aemet.es/centrodedescargas/registro
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 20:48:02 +08:00 |
|
2569718930@qq.com
|
84e7518b04
|
修复安卡拉温度取值错误:精确匹配 MGM 17128 机场站
mgm_nearby 包含安卡拉 26 个站点的混合列表,直接取 [0] 可能拿到非机场站。
改为按 ICAO/istNo 精确匹配 17128,其余城市回退到 [0]。
Constraint: 东京/赫尔辛基/阿姆斯特丹的 mgm_nearby 只有一条,不受影响
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 20:40:44 +08:00 |
|
2569718930@qq.com
|
209027afb3
|
机场消息加英文城市名,时间移到标题行
格式变更:英文名 + 中文标签 + 当地时间放第一行,
温度单独一行,更简洁。
Constraint: 跑道对城市(首尔/釜山)同样受益
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 20:35:02 +08:00 |
|
2569718930@qq.com
|
83d2de5438
|
修复非 AMOS 城市温度显示为整数:改用机场站点温度替代 METAR
city_weather.current.temp 来自 METAR(整数),改为从 mgm_nearby[0].temp
取机场高频数据源的站点温度(小数精度)。JMA/FMI/KNMI/MGM 源均保留一位小数。
Constraint: 首尔/釜山走 runway_temps 已有精度,不受影响
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 20:17:32 +08:00 |
|
2569718930@qq.com
|
4d584f4828
|
推送频率改为按数据源原生速率:AMOS 1分钟,其余 10分钟
不再统一 2 分钟,各城市按实际数据刷新周期独立推送:
首尔/釜山 60s,东京/安卡拉/赫尔辛基/阿姆斯特丹 600s。
循环轮询间隔降至 60s 以匹配最快频率。
Constraint: 循环每 60s 跑一轮,但 interval 判断让各城市按自有节奏推送
Tested: pytest 176 passed, ruff check 通过
|
2026-05-12 20:13:15 +08:00 |
|
2569718930@qq.com
|
5d630bb910
|
接入 KNMI 阿姆斯特丹史基浦机场 10 分钟数据源
通过 KNMI Open Data API 获取 Schiphol 机场 10 分钟观测数据(NetCDF 格式)。
需设置 KNMI_API_KEY 环境变量。Docker 镜像新增 libhdf5-dev/netCDF4 依赖。
Constraint: KNMI API key 为 JWT 格式,通过 Authorization header 传递
Scope-risk: 中高,新增系统依赖 libhdf5-dev + netCDF4
Tested: pytest 176 passed, KNMI API 连通性验证通过
|
2026-05-12 20:10:06 +08:00 |
|
2569718930@qq.com
|
a32a49f3c7
|
接入 FMI 赫尔辛基-万塔机场 10 分钟实时数据源
新增 fmi_sources.py,通过 FMI Open Data WFS API 获取 Helsinki-Vantaa
机场观测数据(FMISID 100968, WMO 2974)。每 10 分钟更新,参数含温度/
风速/气压。免费无需 API key。集成至高频机场推送体系。
Constraint: FMI WFS 无 rate limit,无需注册
Scope-risk: 中,新增数据源
Tested: pytest 176 passed, FMI 实测 temp=13.1°C wind=9.5kt pressure=1000.9hPa
|
2026-05-12 19:51:32 +08:00 |
|
2569718930@qq.com
|
203094a97c
|
修复测试:移除 momentum_spike 断言 + Python 3.8 类型兼容
build_trading_alerts 已移除 momentum_spike 规则,对应测试也更新。
get_airport_obs_recent 返回类型改用 List[Dict] 兼容 3.8。
Tested: pytest 176 passed
|
2026-05-12 19:13:06 +08:00 |
|