Files
Hermes-Skills/lottery-hk/references/draws-table-manual-add-pitfall.md

3.5 KiB

Draws 表入库流程断点 (2026-08-13 发现)

🚨 问题

完整"开奖后核验"流程断在 2 处,需要 user/agent 手动介入:

# 位置 状态
1 draws 表入库真开彩只有手填命令 python3 scripts/lottery_特码.py add <period> <special> <n1..n6> 2026-08-13 无自动抓 marksix6.com 脚本
2 cron lottery-draw-result (22:00 北京) 跑错脚本 — 之前跑 lottery_特码_cron.sh (分析脚本, 重复产生 analysis 记录), 不跑 verify_lottery.sh (核验脚本) 2026-08-13 已修
3 verify_lottery.sh 找 Qi-1 期分析文件 — Qi→Nq 修复后, .md 现在都是 Nq 期 (未开下期), 22:00 跑时 Qi 已经是新一期, 应该找 Qi 期不是 Qi-1 2026-08-13 已修

修复 (2026-08-13)

cron lottery-draw-result script 改

hermes cronjob update 668dcf3ec54d --script verify_lottery.sh

verify_lottery.sh 改 Qi-1 → Qi

原来:

QI_NUM=$((10#$QI))
PREV_PERIOD=$((QI_NUM - 1))
ANALYSIS_FILE=$(grep -l "${PREV_PERIOD}期" ...)

现在 (2026-08-13):

# 改自 verify_lottery.sh: 2026-08-13 因 Qi→Nq 修复, 分析 .md 现在是 Nq 期 (未开下期),
# 不再是 Qi-1 期。verify 时 Qi 已经是新一期 (刚开), 分析文件应该是 Qi 期。
ANALYSIS_FILE=$(grep -lE "${QI}期" "$HOME/.hermes/cron/output/5bec1f60f77f/"*.md 2>/dev/null | tail -1)

仍未自动化: 抓真开彩

draws 表入库没有自动脚本, 仍需手填:

# 1. 21:30 后等 marksix6.com 出来, 用 browser 抓或 curl
# 2. 拿到 7 个号码: n1 n2 n3 n4 n5 n6 + special
# 3. 手填:
python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py add 088 42 37 7 16 1 32 22
# 4. 这会自动: INSERT draws + reset 该 period analysis.actual_special=NULL + 跑 check_hits

check_hits 流程 (自动):

  • 查 draws.special WHERE period = ?
  • 对该 period 所有 actual_special IS NULL 的 analysis 行, 算 hit=1/0 (special 在 Top 5 = 1)
  • UPDATE analysis SET actual_special, hit

为什么不自动抓:

  • marksix6.com 是 Vue SSR, 必须 browser_navigate, cron 跑 no_agent 模式不能 browser
  • hkjc.com 被所有外部 browser agent 拦 (Browserbase / bet.hkjc.com / fonts 卡 30s+)
  • v_xg.json Data.1-7 是 Qi 期真开彩 (上一期), 不是当期, 不能用于当期核验
  • sol.2344a.cc / 百度 都不显示真开

验证

# 模拟 22:00 cron 跑 (Qi=088 期已开, 087 期 analysis 已生成, 087 期 special 已 add):
bash ~/.hermes/skills/trading/lottery-hk/scripts/verify_lottery.sh
# 期望:
#   ## 🎯 核验报告 | 088期
#   ... (088 draws 表为空, exit 1 "❌ 期号 088 还没入库开奖结果")
# 或 (087 期 special=13 已入库):
#   ### 实际开奖
#   | 特码 | **13** |
#   ### 预测 vs 实际
#   **预测**: ...
#   ### 命中分析
#   - 特码 13: ❌ 未中 (or ✅ 中)

教训

  1. 数据库写入必须有自动化路径 — draws 表只有手填, 流程被卡在 user 介入。下次加 lottery_fetch_draw.sh 用 no_agent + browser (browser-based scripts 在 no_agent 也能跑) 自动入库
  2. cron 配错脚本比 cron 配错参数更隐蔽 — lottery-draw-result 跑分析脚本不会报错, 因为 no_agent + script 模式下 lottery_特码_cron.sh 也是合法脚本。要定期 hermes cronjob list 校对每个 cron 的 --script
  3. Qi→Nq 修复有副作用 — 之前所有 .md 都是 Qi 期 (错的), verify_lottery.sh 找 Qi-1 还能匹配上; 修复后 .md 都是 Nq 期, verify 必须找 Qi 期。这种隐式依赖期号语义的脚本特别容易踩