Files
Hermes-Skills/lottery-hk/references/2026-08-30-hot-data-previous-draw-recap.md

3.7 KiB

2026-08-30 v1.5.0 hot-data cron 加"上期开奖回顾"段

用户原话: "这个每次推送前把上期开奖结果推一下。"

改动

lottery_特码_cron.sh (11:30 北京 hot-data 推送) 在分析前加 3 段输出:

  1. 上期 Qi 期开奖结果 (平码 + 特码)
  2. 预测 Top 5 (从历史 .md 锚定 🥇🥈🥉 行提取)
  3. 特码命中判定 ✅/❌ (只看特码, 不判平码)

为什么 hot-data 11:30 能拿到 Qi 期数据:

  • 开彩是周二/四/六 21:30 北京
  • hot-data 跑 11:30 北京 = 开彩前 10h, 但上期开彩已在 14h 前完成
  • v_xg.json 每次请求都返 Qi = 最新已开期号, 11:30 跑时 Qi = 上一开彩期
  • 6 次 cron 跑里, 3 次能拿到上期回顾 (周二/四/六 11:30 跑) - 剩下 3 次 (周一/三/五 跑) Qi 仍是上一开彩期, 同样有数据, 所以实际上每次都能拿到

实现细节

1. 从 lottery.db 的 draws 表读 Qi 期真开彩

ROW=$(sqlite3 "$DB" "SELECT n1||'|'||n2||'|'||n3||'|'||n4||'|'||n5||'|'||n6||'|'||special FROM draws WHERE period='$Qi';")

fallback: draws 表无数据 (用户没手填且 verify_lottery.sh 没跑过) → 直接从 v_xg.json Data.1-7 拿

2. Top 5 提取 (锚定 emoji 行, 避免抓年份/日期)

错 (没锚定, 抓到时间戳):

TOP=$(grep -oE '\*\*[0-9]+\*\*' *.md | head -5)
# → "5,1,60,77,2026" (2026 是日期年份)

对 (锚定 🥇🥈🥉 行):

TOP=$(grep -hE '^\| [🥇🥈🥉] \| \*\*[0-9]+\*\*' *.md \
      | grep -oE '\*\*[0-9]+\*\*' | head -5 | grep -oE '[0-9]+')

3. 只判特码命中 (用户硬偏好)

if echo ",$TOP," | grep -q ",$SP,"; then
    echo "命中: ✅ 特码 $SP 中奖!"
else
    echo "命中: ❌ 特码 $SP 未中"
fi

不要:

  • ❌ 平码命中判断 (用户原话: "只要特码命中的")
  • ❌ 多余"平码命中 26" 这种列

verify_lottery.sh (22:30 核验脚本) 仍可输出平码命中, 那是核验报告, 不是 hot-data 推送, 性质不同。

实跑验证 (2026-08-30, 095 期)

🎯 分析期号: 096 (v_xg.json Nq 未开下期)

━━━ 上期开奖回顾 ━━━
**095 期**
| 位置 | 号码 |
|:---|:---|
| 平码 | 30 · 4 · 11 · 26 · 8 · 7 |
| 特码 | **42** |

预测 Top 5: 33,25,26,22,22
命中: ❌ 特码 42 未中

==============================================================
096 期特码分析...

时间轴覆盖 (确保每次 cron 跑 Qi 都有数据)

cron 跑时间 Qi 期 (上一开彩) Nq 期 (下期开彩)
周二 11:30 北京 周六 095 (4 天前) 周二 096 (今晚)
周四 11:30 北京 周二 096 (2 天前, 今天 21:30 后 Qi 变 096) 周四 097 (后两天)
周六 11:30 北京 周四 097 (2 天前) 周六 098 (后两天)

注意: cron schedule 是 0,2,4 (周日/周二/四/六, 注意是 UTC day-of-week 还是 北京时间 day-of-week)

  • cron 表达式用 UTC, 北京时间 = UTC + 8h
  • 30 11 * * 0,2,4 UTC = 周日/二/四 11:30 UTC = 北京 周日/二/四 19:30 北京, 不是 11:30 北京!

⚠️ 实际 cron schedule 应该用 30 3 * * 0,2,4 UTC (北京 11:30) 或 确认 hermes cron 后端是按 UTC 还是本地时间计算。 详见 v4.5.66 reference 的 cron schedule 修复记录。

教训

  1. grep Top 5 一定要锚定 emoji 行 - 裸 grep \*\*[0-9]+\*\* 会抓到日期里的 **2026**
  2. 用户偏好简化判定维度 - 删平码命中是显式偏好 (用户原话 "只要特码命中的"), 不是建议
  3. fallback 链很重要 - draws 表空 → v_xg.json fallback, 双重保险
  4. 复用 verify_lottery.sh 的逻辑 - 同一个 wrapper 写了两次 (hot-data + verify), 抽公用函数可避免重复