2569718930@qq.com
|
032d46ec1d
|
Polymarket 市场扫描新增 SCAN_DEBUG 日志排查终端无数据问题
在 _build_distribution_scan_pack / _row_from_entry 关键路径
添加 logger.info 跟踪 related_markets 数量、批量报价结果、
行过滤原因和最终结果,便于定位 scan_rows 始终为空的原因。
|
2026-05-25 02:46:05 +08:00 |
|
2569718930@qq.com
|
ad936bfd91
|
Telegram 高频推送内存优化:LRU 缓存限制、TTL 驱逐、速率控制、连接复用
core.py: _cache 改用 LRUDict(maxsize=256) + threading.Lock 线程安全读写
analysis_service.py: _CACHE_LOCK 保护读写,_SUMMARY_CACHE 改用 LRUDict(maxsize=128)
weather_sources.py: 新增 _maybe_trim_caches() 定期清理 11 个过期缓存条目,防止无限增长
telegram_push.py: requests.Session 连接复用替代裸 requests.get,ThreadPoolExecutor 跨周期复用,
新增 _rate_limited_send 消息发送速率控制防止 API 限流堆积
Tested: ruff check 通过, 182 pytest 通过
|
2026-05-25 02:20:15 +08:00 |
|
2569718930@qq.com
|
c9cff88452
|
更新浏览器图标为新品牌 logo
基于 public/logo.png 重新生成所有尺寸的 favicon 和 PWA 图标。
Tested: npm run build 通过
|
2026-05-25 00:53:39 +08:00 |
|
2569718930@qq.com
|
e9cc9a5eb1
|
修复机构落地页构建失败并恢复 Polymarket 市场扫描
InstitutionalLandingPage.tsx 补充 "use client" 指令以通过 Next.js 15 构建。
polymarket_readonly.py 集成 WebSocket 报价缓存加速价格获取。
city_payloads.py 复用 Polymarket 层构建真实市场扫描数据替代空返回。
Constraint: 市场扫描需在无 Polymarket 价格 UI 的前提下提供数据
Tested: npm run build 通过
|
2026-05-25 00:41:56 +08:00 |
|
2569718930@qq.com
|
e4d123d94d
|
重构首页为机构落地页,新增终端路由,时区感知 Polymarket 市场发现
|
2026-05-25 00:16:53 +08:00 |
|
2569718930@qq.com
|
f8f0d69e5c
|
修复 AEROWEB Cookie 提取:httpx session.cookies 替代 resp.cookies.jar
httpx 的 cookies API 与 requests 库不同,resp.cookies.jar 在 httpx 中不存在,
导致 PHPSESSID 提取失败、登录报错。改用 self.session.cookies.get() 直接读取。
|
2026-05-23 01:04:01 +08:00 |
|
2569718930@qq.com
|
891b4d2422
|
新增 AEROWEB (Météo-France) 和 NCM (沙特) 实时气象数据源
AEROWEB: 接入 aviation.meteo.fr,LFPB METAR 2 分钟内可获取,
实测温度替代 AROME 模式预报作为 Paris 电报推送数据源。
登录流程: PHPSESSID + MD5 密码 → ajax/login_valid.php,
Session 20 分钟自动续期,XML 解析提取 tempe/td/dd/ff/qnh。
NCM: 沙特气象局 Meteomatics API 代码框架,待凭证激活。
Jeddah settlement_source 从废弃的 wunderground 迁移至 ncm。
同时清理: 日志文件 trading_system.log → polyweather.log,
删除 2026-02-07 的 1.2MB 废弃交易引擎日志。
Constraint: AEROWEB 需 AEROWEB_USERNAME/AEROWEB_PASSWORD 环境变量
Constraint: NCM 需 NCM_API_USERNAME/NCM_API_PASSWORD 环境变量
Confidence: high
Tested: AEROWEB 登录→取数→解析端到端验证通过
|
2026-05-22 21:50:37 +08:00 |
|
2569718930@qq.com
|
41d740d611
|
IMS 数据源切换至 10 分钟频率 hourly_observations_full 端点
原 hourly_observations 端点仅整点更新 TT 字段。
hourly_observations_full 提供每 10 分钟 TD (Temperature Dry) 字段,
精度 0.01°C,与 TT 完全一致(r=1.000)。
WS 风速单位 m/s → 内部转换为 km/h 和 knots。
日最高/最低从当天全部 10 分钟槽位扫描计算。
Constraint: TD 字段命名与露点温度易混淆,已在 docstring 注明
Confidence: high
Tested: TD vs TT 在 23 个整点时刻完全吻合
|
2026-05-22 19:31:09 +08:00 |
|
2569718930@qq.com
|
60ac4bae31
|
Tel Aviv 机场观测切换至 IMS Lod Airport 实时数据源
新增 IMS (Israel Meteorological Service) 数据抓取模块,以 Lod Airport
(station 225) 官方观测替代 NOAA METAR LLBG 作为 airport_primary。
IMS 数据接入 _airport_primary_from_raw 优先级链,高于 plain METAR
但保留 METAR 集群回退路径。
Constraint: IMS API (ims.gov.il/en/hourly_observations) 仅每小时更新
Confidence: high
Scope-risk: 仅影响 Tel Aviv 城市,其余 51 城数据流不变
Tested: 端到端验证 IMS 取数 → airport_primary → provider 路由链
|
2026-05-22 19:16:34 +08:00 |
|
2569718930@qq.com
|
24f2a82893
|
feat: fetch and cache hourly multi-model forecast data in SQLite for all cities
|
2026-05-21 19:50:54 +08:00 |
|
2569718930@qq.com
|
9b9f548de9
|
从系统彻底移除 Lagos 城市
该城市已不再需要,从城市注册表、时区映射、缓存巡检脚本、测试
中全部清理。52 城市 → 51 城市。
Tested: pytest test_country_networks.py (19/19), ruff check
|
2026-05-21 14:30:18 +08:00 |
|
2569718930@qq.com
|
8ba9567f64
|
移除深圳宝安机场跑道数据采集,深圳市场结算使用流浮山 HKO 数据
|
2026-05-20 19:38:07 +08:00 |
|
2569718930@qq.com
|
10a0788398
|
修复 AMSC 风向取第一条跑道可能为空的问题
|
2026-05-20 18:35:35 +08:00 |
|
2569718930@qq.com
|
9b2ac614cb
|
重构跑道观测系统:全跑道展示、结算跑道标注、热力模型、风场分析
|
2026-05-20 18:16:27 +08:00 |
|
2569718930@qq.com
|
a6e7d6682d
|
移除俄罗斯 pogodaiklimat 数据源:周边观测站不需要
|
2026-05-19 16:57:00 +08:00 |
|
2569718930@qq.com
|
3ca5b71299
|
移除 NMC(中国国家气象中心)数据源:无实际使用价值
|
2026-05-19 16:20:48 +08:00 |
|
2569718930@qq.com
|
6b741cc1ec
|
修复 Russia 数据源 f-string 嵌套引号语法错误
|
2026-05-19 15:44:52 +08:00 |
|
2569718930@qq.com
|
3b8098051e
|
将商业核心数据源 URL 从源码迁移到环境变量,VPS .env 已补全
|
2026-05-19 15:42:03 +08:00 |
|
2569718930@qq.com
|
7e0d955d22
|
修复语法错误:多余括号
|
2026-05-19 15:19:32 +08:00 |
|
2569718930@qq.com
|
4c6a93498c
|
移除源码中硬编码的 API token:NOAA MesoWest 密钥和 CWA 占位符
|
2026-05-19 15:18:49 +08:00 |
|
2569718930@qq.com
|
b93a75516d
|
移除未使用的 Groq 和 Meteoblue 服务代码及配置
|
2026-05-19 00:05:07 +08:00 |
|
2569718930@qq.com
|
1c4287380e
|
修复 KNMI 维度名称为字符串类型的兼容性问题
|
2026-05-18 18:30:12 +08:00 |
|
2569718930@qq.com
|
8c640b8616
|
适配 KNMI netCDF 新数据布局:(station,time) 替代 (time,station)
|
2026-05-18 18:28:18 +08:00 |
|
2569718930@qq.com
|
8a5e8957c5
|
适配 KNMI station ID 格式变更:3位码→5位WMO码,修复前导零丢失
|
2026-05-18 18:23:57 +08:00 |
|
2569718930@qq.com
|
06ac6bab32
|
修复 KNMI S3 下载被 Auth header 污染导致 netCDF 解析失败
|
2026-05-18 18:19:05 +08:00 |
|
2569718930@qq.com
|
abdce3cd3b
|
适配 NOAA MADIS HFMETAR netCDF 新格式:stationId 替代 icaoId,开尔文转摄氏度,气压 Pa 转 hPa
|
2026-05-18 17:48:56 +08:00 |
|
2569718930@qq.com
|
c6321253fe
|
修复 MADIS HFMETAR 目录路径:NOAA 已将文件迁移到 netCDF 子目录
|
2026-05-18 17:33:35 +08:00 |
|
2569718930@qq.com
|
4a8eeaae5e
|
修复 KNMI API key 未传递到 HTTP 请求的 bug
|
2026-05-18 17:28:56 +08:00 |
|
2569718930@qq.com
|
fd59cd018d
|
Harden Open-Meteo rate limiting
|
2026-05-18 00:13:51 +08:00 |
|
2569718930@qq.com
|
22e2409e13
|
修复 Open-Meteo 冷却期无限循环导致多模型数据缺失
- fetch_all_sources 新增 om_from_cache_only 模式:force_refresh_observations_only
时直接从内存缓存取 OM 数据,不发起 HTTP 请求。缓存未命中则跳过,
避免机场推送 60s 周期持续触发 429 限流
- nws_open_meteo_sources 三类 fetch 函数冷却期加磁盘缓存兜底:
内存未命中时 force-reload SQLite 磁盘缓存再查一次
- 预热停止后冷却期自然过期(900s),下一次正常请求会填充缓存
|
2026-05-17 22:31:10 +08:00 |
|
2569718930@qq.com
|
a83200d505
|
Fix Ankara decision chart model coverage
|
2026-05-17 19:12:28 +08:00 |
|
2569718930@qq.com
|
d39534dff4
|
机场推送重构:观测缓存分离 + 全城市覆盖 + 四路并发
- 新增 force_refresh_observations_only 模式:机场推送仅刷新 METAR/AMOS
观测缓存,多模型预报缓存保留 15 分钟,杜绝 Open-Meteo 429 限流后
DEB 回退到实测温度的 bug
- 砍掉夜间静默和温度状态机,每条新观测无条件推送
- HIGH_FREQ_AIRPORT_CITIES 从 19 城扩到 30 城(新增 11 个美国城市)
- 美国城市走 airport_primary (MADIS) 优先取温
- 机场周期从串行改为 ThreadPoolExecutor(max_workers=4),周期时间从
~120s 压缩到 ~33s
Constraint: 单核 VPS 安全并发上限
Tested: docker compose up -d --build polyweather 重建后推送正常
|
2026-05-17 18:04:05 +08:00 |
|
2569718930@qq.com
|
2e02133696
|
修复图表时间轴不全与城市决策卡模型补齐卡顿
- 后端 Open-Meteo 请求加 past_days=1,小时数据从 00:00 开始
- 前端图表层填充完整 00:00-23:00 时间轴,缺失时段置空
- 城市深度分析门槛从 >1 降为 >=1,单模型城市不再被拦
- hydration 队列加最大重试 3 次,防止永久卡在等待模型补齐
- 移除右侧面板历史对账按钮
|
2026-05-16 20:14:05 +08:00 |
|
2569718930@qq.com
|
f47ea93ec1
|
AMSC 重命名 _http_get_json 为 _amsc_http_get_json,避免 MRO 被 WeatherDataCollector 的同名方法覆盖
|
2026-05-15 03:47:15 +08:00 |
|
2569718930@qq.com
|
856e9aa6d1
|
AMSC 添加 stderr 调试输出,确认 urllib 代码路径被执行
|
2026-05-15 03:42:14 +08:00 |
|
2569718930@qq.com
|
e981188bf8
|
AMSC 请求从 httpx 改为 urllib,彻底绕过代理干扰
|
2026-05-15 03:33:06 +08:00 |
|
2569718930@qq.com
|
d8639f40f9
|
AMSC 请求绕过代理 trust_env=False,修复容器内 SSL 验证失败
|
2026-05-15 03:19:33 +08:00 |
|
2569718930@qq.com
|
6655476fd4
|
AMSC SSL 硬编码 verify=False,跳过证书验证环境变量依赖
|
2026-05-15 03:13:30 +08:00 |
|
2569718930@qq.com
|
06df0a87dd
|
AMSC 请求添加调试日志,排查 SSL verify 状态
|
2026-05-15 03:03:26 +08:00 |
|
2569718930@qq.com
|
00400f1392
|
AMSC 请求添加 app: AMS header,对齐浏览器完整请求头
|
2026-05-15 02:49:34 +08:00 |
|
2569718930@qq.com
|
bbb47b1634
|
AMSC sessionId 从 Cookie 改为自定义 header,对齐浏览器请求格式
|
2026-05-15 02:46:56 +08:00 |
|
2569718930@qq.com
|
189a77d03d
|
AMSC SSL 改用 httpx.Client(verify=False) 确保跳过证书验证
|
2026-05-15 02:42:03 +08:00 |
|
2569718930@qq.com
|
9f7bbffca1
|
AMSC AWOS 请求添加 SSL 验证开关,兼容国内证书
|
2026-05-15 02:25:33 +08:00 |
|
2569718930@qq.com
|
4cc579ccb3
|
feat: add AMSC runway observations
|
2026-05-15 01:41:49 +08:00 |
|
2569718930@qq.com
|
3bca2093f0
|
修复高频机场数据源:AMOS接入airport_primary、Taipei CWA补充mgm_nearby、Paris AROME缓存
- Seoul/Busan: AMOS 跑道传感器纳入 airport_primary 链路(MADIS之后、MGM之前)
- Seoul/Busan: 跑道温度生效时同步更新 current_obs_time,去重不再依赖慢速METAR
- Taipei: 新增 _attach_cwa_settlement_nearby,将CWA数据注入 mgm_nearby(icao=RCSS)
- Paris: AROME HD 抓取新增 10分钟内存缓存(模型15分钟更新),obs_time 为空时补 UTC 时间
- Istanbul/Ankara MGM 链接修复为直接跳转机场站点页面
Scope-risk: LOW — 170 测试通过,ruff 零告警
Tested: python -m pytest -q (170 passed), ruff check .
|
2026-05-15 00:10:03 +08:00 |
|
2569718930@qq.com
|
8dd9aa59b3
|
接入新加坡 MSS 1分钟实时温度及 MGM/JMA/FMI/KNMI 高频源到 airport_primary
- 新建 singapore_mss_sources.py:拉取 data.gov.sg 1分钟干球温度(S24 樟宜站)
- country_networks.py:_airport_primary_from_raw 新增 MGM/JMA/FMI/KNMI/SG_MSS 分支
- weather_sources.py:注入 jma_current/fmi_current/knmi_current/singapore_mss_current
- 前端 MonitorPanel:resolveSourceLabel 根据 airport_primary.source_code 显示数据源标签
- 文档:更新 AIRPORT_REALTIME_SOURCES.md 新增新加坡
Tested: ruff check . ✓ npx tsc --noEmit ✓
|
2026-05-14 17:12:11 +08:00 |
|
2569718930@qq.com
|
96676e7097
|
修正市场监控温度数据源:接入 NOAA MADIS 5分钟高频数据并优化展示
- 首尔/釜山:隐藏大号跑道温度值,改为"跑道温度"标签(跑道表面温度 ≠ 空气温度)
- US 城市:MADIS HFMETAR 5分钟小数温度接入 airport_primary,前端优先读取
- 其他城市:整数值不再强制 toFixed(1) 追加虚假 .0 精度
- 后端:weather_sources.py 注入 madis_hfmetar_current 到 results
- 后端:country_networks.py 的 _airport_primary_from_raw 新增 MADIS 优先分支
- 文档:更新 AIRPORT_REALTIME_SOURCES.md 新增 11 个 US 城市
- 文档:更新 CLAUDE.md 补充市场监控、高频数据管道、Country Network Provider 架构
Tested: npx tsc --noEmit ✓ ruff check . ✓
|
2026-05-14 16:00:55 +08:00 |
|
2569718930@qq.com
|
6c4f43fba6
|
Aurora→Denver 重命名 + 接入 MADIS HFMETAR 5 分钟数据源
|
2026-05-14 01:09:17 +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
|
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 |
|