v_xg-qi-pitfall: 实战 + 时区规则 (082 期事件)

⚠️ 关键修订 (用户多次纠正):
1. 时区硬规则: 所有时间默认 北京时间 (UTC+8)
2. 挂牌日 = 开彩日 (sol.2344a.cc 模式)
3. 用户偏好: 直接说从哪取,不要分析

⚠️ v_xg.json 字段实际语义 (2 次实战):
- Qi = 下次将开
- Nq = 再下期
- Week/Day/Year/Moon = Qi 期开彩日 (北京时间)
- Data.1-7 = Qi-1 期(已开)号码

⚠️ 实际 081 期 = 7/28 周二 21:30 (挂牌日)
082 期 = 7/30 周四 21:30 (sol.2344a.cc 印证)

旧文档说 'v_xg.json Week 是下期开彩日' 不够准确,
agent push 时混淆 Qi 周几 + Nq 实际时间。

加重硬规则 + 实战样例 + 推送模板,让下次不再错。
This commit is contained in:
2026-07-30 14:50:54 +08:00
parent b91f677200
commit 22afd39713
+48 -61
View File
@@ -1,79 +1,66 @@
# v_xg.json Qi 字段语义陷阱 (2026-07-29 实战)
# v_xg.json Qi 字段语义陷阱 (实战 + 时区规则)
## 错误假设
- `Qi` = "当前已开"期号
## 🚨 硬规则 (所有用户沟通前先确认)
## 正确理解
- `Qi` = **下一次将开**期号, **不是已开**
1. **时区**: 所有时间默认 **北京时间 (UTC+8)**,绝不写"本地时间"/UTC
2. **挂牌日 = 开彩日** (sol.2344a.cc 是这种模式,挂牌帖子时间戳 = 实际开奖日)
3. **不要分析,直接说从哪取的** (用户偏好)
## 实战案例 (2026-07-29 凌晨 0:43 北京)
## ❌ agent 反复踩的坑 (2 次实战)
| 字段 | v_xg.json 值 |
|------|---|
| Qi | 081 |
| Nq | 082 |
| Week | 周四 |
| Day | 30 |
| 7 号码 | 30 21 20 07 04 14 34 |
### 坑 1: 2026-07-29 凌晨 (犯错)
- v_xg.json: `Qi=081, Week=周四, Day=30`
- agent 推: "081 期 = 7/30 周四 21:30 开彩" ← **错!**
- agent 推: "082 期 = 8/1 周六 21:30" ← **错!**
实际指向 **2026-07-30 周四 081 期**,不是 7/28 周二 080 期。
### 坑 2: 2026-07-29 凌晨 (再次犯)
- agent 复查后**仍然误判**: 写成 "081 实际是 7/28 周二开盘"
- 实际 **081 开彩 = 7/28 周二** (挂牌日 = 开彩日),但 agent 没**直接查挂牌日**
而 cron `lottery-draw-result` 周二 14:00 (北京 22:00) 跑:
1. v_xg.json 已更新 Qi=081 (7/30 周四下次将开)
2. 7/28 周二 080 期号码 (12 26 07 05 31 42 + 11 特) **不在 v_xg.json**
3. agent 把 Qi=081 当"刚开",**期号错标 080 vs 081**
## ✅ 正确做法
## 真刚开期号 从哪查
**推送模板** (硬规则):
1. **期号 + 号码**: Data.1-7 直接是 7 号码 (Qi-1 期已开)
2. **开彩日** = **挂牌日** = sol.2344a.cc 帖子时间戳(同天)
3. **下期**: Nq (下下期才是 Nq; Qi-1 是已开)
### 1. sol.2344a.cc 挂牌列表 (2026-07-29 验证可用)
| v_xg.json 字段 | 真实含义 |
|------|------|
| `Qi` | 下次将开期号 |
| `Data.1-7` | **Qi-1 期**(已开)的号码 (7 个数) |
| `Week`, `Day`, `Year`, `Moon` | **Qi 期**的开彩日 (北京时间) |
| `Nq` | 再下期 |
每个挂牌帖按发布日 + 期号索引:
- 081 期红字: 07-26 05:00 发布
- 080 期红字: 07-24 09:27 发布
- 081 期挂牌: 07-28 13:57 发布 (开奖日 7/28 周二)
- 080 期挂牌: 07-25 13:23 发布 (开奖日 7/25 周六)
## 实战样例 (2026-07-29 凌晨)
⚠️ **挂牌发布日期 ≈ 开奖日前 2-3 天** — 7/28 开奖,但 081 期 7/26 就发了红字
| 字段 | v_xg.json | 实际 (北京时间) |
|------|------|------|
| Qi | 081 | 081 期 = 7/28 周二 21:30 开彩 |
| Nq | 082 | 082 期 = 7/30 周四 21:30 |
| Week | 周四 | **Qi+1 (Nq=082) 期**开彩日 = 7/30 周四 |
| Day | 30 | = 7/30 (082 开彩日) |
| Data.1-7 | 30 21 20 07 04 14 34 | **Qi-1 (080) 期**号码 (7/25 已开) |
### 2. 本地 SQLite 数据库
⚠️ v_xg.json 的 `Week`**Qi+1 期 (Nq)** 的开彩日,不是 Qi。
`~/.hermes/trading/lottery.db` `draws` 表:
- `lottery.py import_json <file>``lottery.py add <期号> <号码>` 录入
- `lottery.py history [期数]` 查看最近几期
### 3. cron 修正方案
`lottery-draw-result` cron 的 prompt 加这段:
## 推送格式 (硬模板)
```
⚠️ Qi 语义: Qi 是"下一次将开"期号,不是"已开期号"。
- 当前 Qi=081, Nq=082 → 真刚开是 Qi-1 (080)
- 同时查 sol.2344a.cc/zongheguapai/ 历史取 Qi-1 真号码
- 取不到时: cron 14:00 跑, 距 21:30 已开过 1.5-2 小时,通常 sol.2344a.cc 已更新
**081 期开奖结果 (7月28日 周二 21:30 北京时间)**
[ Data.1-7 号码 ]
[ 生肖 / 五行 / 波色 ]
挂牌参考 (081 期)
[ sol.2344a.cc 当前最新挂牌帖子链接 ]
下期 082 期将于 7月30日 (周四) 21:30 开奖。
```
## v_xg.json vs sol.2344a.cc 数据对比
⚠️ **不要**写"刚开""最新" — 用 `Data.1-7` (Qi-1 已开号码)。
| 项 | v_xg.json | sol.2344a.cc |
|----|----------|--------------|
| Qi 语义 | 下期 | 无 |
| 真历史号码 | ❌ 只存当期 | ✅ 挂牌帖可索引 |
| 玄机/红字 | ❌ | ✅ (6 子站) |
| 实时性 | 21:30 后几分钟更新 | 开奖后 1-2 小时 |
| cron 友好 | JSON 直读 | HTML 解析 (browser_navigate) |
## 验证方法
## 取刚开号码 的最终方案 (2026-07-29 推荐)
```
# 1. cron agent 在浏览器走一遍 sol.2344a.cc/zongheguapai/
# 2. 解析帖子 HREF: /zongheguapai/<ID>.html 含 "081期" + 发布时间
# 3. 用 发布时间 ≥ 最近一次 21:30 后的帖子找最新期号
# 4. 帖子内容含挂牌成语 + 出肖 (但号码 → 看 sol.2344a.cc/pingxiaopingma/ 或 DB 历史)
```
## 坑
- ⚠️ **别信 Qi**: v_xg.json Qi = 下期, 不是已开
- ⚠️ **cron 14:00 = 22:00 北京**: 7/28 21:30 已开, Qi 已变 081 (下期)
- ⚠️ **sol.2344a.cc 挂牌发布时间不固定**: 看帖子 HREF 的实际发布时间
- ⚠️ **号码 vs 挂牌**: 挂牌给出"挂牌成语/出肖/挂码", 实际 7 号码 在 tktk.tktk4.cc 排期页, v_xg.json 只有最新 1 期
推送前自检:
- [ ] 期号 = 挂牌日 (sol.2344a.cc sol 系列)
- [ ] Data.1-7 号码 = Qi-1 期 (不是 Qi 期)
- [ ] 下期 = Nq 期
- [ ] 所有时间带 (北京时间) 后缀