Files
Hermes-Skills/lottery-hk/SKILL.md
T
mike 1164834ccb lottery-hk: v1.2.4 — SKILL.md 显式 include v_xg-qi-pitfall.md + 4 框架
变更:
- description 加 '4 框架在 references/analysis-example-073/074/075.md, 不是脚本, agent 用 example 推演'
- description 加 '必读: references/v_xg-qi-pitfall.md (Qi 字段语义陷阱实战)'

新增 cron-prompts/ 目录 (cron config 不在 git, 存档):
- README.md (cron jobs 说明 + schedule + 修改流程)
- lottery-hot-data.md (5bec1f60f77f prompt)
- lottery-draw-result.md (668dcf3ec54d prompt)

下次 cron 跑前 082 期开彩(7/30 周四 21:30 北京),
agent 加载 lottery-hk skill v1.2.4 会看到:
- 时区硬规则
- 挂牌日 = 开彩日
- v_xg.json 字段语义
- 4 框架在 references/analysis-example-* (不是脚本)
- v_xg-qi-pitfall.md 必读
2026-07-30 15:23:59 +08:00

13 KiB
Raw Blame History

name, description, version, tags
name description version tags
lottery-hk 香港六合开奖抓取与分析。数据源: sol.2344a.cc(2026-07-29 替代 sol.0051.cc) + btc.tktk.app/data/v_xg.json + tktk.tktk4.cc。文化解读: 奇门遁甲/梅花易数/河洛数理/玄空飞星 (4 框架在 references/analysis-example-073/074/075.md, 不是脚本, agent 用 example 推演)。SQLite 存数据, analytical 标注'文化娱乐参考'。硬规则: (1) 所有时间默认北京时间 UTC+8; (2) 挂牌日 = 开彩日 (sol.2344a.cc 帖子时间戳 = 实际开奖日, 同天); (3) v_xg.json Qi=下次将开期号, Nq=再下期, Week/Day=Qi 期开彩日, Data.1-7=Qi-1 期已开号码; (4) agent 推送格式必须标 (北京时间), 不写刚开/最新; (5) 用户问'从哪取'只答来源一行, 不展开。必读: references/v_xg-qi-pitfall.md (Qi 字段语义陷阱实战)。 1.2.4
lottery
hk
六合彩
analysis
sol-2344a
qdrant-memory

香港六合开奖分析

时区规则(硬规则): 所有时间默认 北京时间(UTC+8)。v_xg.json 的 Week/Day/Year/MoonQi 期(下次将开) 的开彩日。挂牌日 = 开彩日 (sol.2344a.cc 帖子时间戳 = 实际开奖日, 同天)。任何"周几"都指北京时间;写 QQ 推送必须带"北京时间"字样或 +8 时区。

沟通风格: 用户要"直接说怎么取的,不要分析/解释"。回答"081 是周几"时,直接说"来源是 v_xg.json Week=周四" — 不分析"为什么不是周二"。

📦 4 框架 (奇门/梅花/河洛/玄空) 的位置: 它们是 reference 文档(analysis-example-073/074/075.md),不是 lottery.py 的子命令。lottery.py 只跑频率统计。Cron 推送 4 框架分析时,agent 手动从 reference 推演(或用 lottery.py analyze 给数字,然后按 example 的方法写结论)。

从天空彩票抓取香港六合开奖结果,提供数据分析。数据存SQLite,不存图片。

数据源

主站

当前开奖JSON API

  • v_xg.json: https://btc.tktk.app/data/v_xg.json(直接返回JSON,无需浏览器)
  • Qi 字段语义 (pitfall): Qi 是下一次将开的期号, 不是"已开"。真开奖要从 sol.2344a.cc 挂牌历史 / 数据库历史查
  • sol.2344a.cc 历史API: /e/api/api.php?get=sixlist&year=YYYY 仍返回空 (历史AJAX失效)

开奖时间

  • 每周二、四、六 21:30(北京时间)
  • 49个号码,6个平码 + 1个特码

tktk API架构(从public.js逆向)

tktk Vue.js应用的数据源URL模式: https://btc.tktk.app/data/v_{cod}.json?{timestamp}

cod 彩种 说明
xg 香港六合 每周二/四/六 21:30
48am 天天澳门彩 每天 22:14-22:40
am 新澳门六合 每天 21:14-21:40
tw 台湾六合 每天 20:28-20:58
xjp 新加坡六合 每天 18:35-18:55
fckl8 快乐8 每天 21:25-21:40

JSON返回格式:

{
  "Data": {
    "1": {"nim":"金","number":"34","color":"红","style":"red","sx":"鸡"},
    "2": {...}, ... "7": {...}
  },
  "Time": "21点30分", "Day": "05", "Moon": "07", "Year": 2026,
  "Qi": "071", "Nq": "072", "Week": "周日", "Auto": false
}
  • Data.1-Data.6: 平码,Data.7: 特码
  • Qi: 当前期号(下次将开),Nq: 下期号
  • nim: 五行,sx: 生肖,color: 波色(红/蓝/绿)

⚠️ 重要: v_xg.json 字段语义陷阱

  • 正确: Qi = 下一次将开期号,不是"已开"Nq = 下下期;Week/Day/Year/Moon 都是下期的开奖时间
  • 7 号码 (Data.1-7): 真已开期号的号码(Qi-1 期的结果)
  • 实战 (2026-07-29): cron 周二 14:00 (7/28 22:00) 跑, v_xg.json Qi=081 (7/30 周四下次将开), 7 号码是 080 期(已开);081 期要等 7/30 周四 21:30
  • 取下下期 / 周几等时间: 拿 v_xg.json 即可(Qi/Nq/Week/Day 都是下期时间)
  • 取真刚开期号 + 号码: 7 号码是 Data.1-7 + sol.2344a.cc 挂牌历史索引 Qi-1 期号,或数据库 history 表

数据存储

SQLite数据库: ~/.hermes/trading/lottery.db

  • draws 表: 开奖记录(期号、日期、6个号码+特码、生肖、五行、波色)
  • cold_data 表: 冷数据(key-value,网页文本内容)
  • image_links 表: 图片链接(类别、标题、URL、期号,不下载图片)
  • 不存图片文件,图片类只存URL链接

脚本用法

SCRIPT=~/.hermes/skills/trading/lottery-hk/scripts/lottery.py

python3 $SCRIPT add <期号> <号码>          # 手动添加
python3 $SCRIPT add_full <期号> <号码> <生肖>  # 手动添加(带生肖)
python3 $SCRIPT history [期数]             # 查看历史
python3 $SCRIPT analyze                   # 分析(频率/热号/冷号/生肖/五行/波色)
python3 $SCRIPT zodiac                    # 生肖号码对照表
python3 $SCRIPT next                      # 下期开奖时间
python3 $SCRIPT import_json <文件>         # 导入JSON历史数据
python3 $SCRIPT save_cold <key> <content>  # 保存冷数据
python3 $SCRIPT get_cold <key>             # 读取冷数据
python3 $SCRIPT save_image <类别> <标题> <URL> [期号]  # 保存图片链接
python3 $SCRIPT list_images [类别>          # 列出图片链接

生肖映射(网站实际映射,已验证)

网站的生肖表和标准12生肖轮转不同,用 mod 12 映射:

0=狗, 1=猪, 2=蛇, 3=马, 4=羊, 5=虎, 6=兔, 7=鼠, 8=牛, 9=猴, 10=鸡, 11=龙

071期验证: 34=鸡(34%12=10), 46=鸡(46%12=10), 17=虎(17%12=5)

冷数据 vs 热数据

🧊 冷数据(存cold_data表,不常变):

  • 歷史、生肖表、日期、常識、全年、技巧、規律、策略

🔥 热数据(每期更新):

  • 開獎、掛牌、解牌、綜掛、平碼平肖、玄机资料、论坛高手推荐等

参考资料

  • 用户说"六合"、"开奖"、"彩票"、"特码"
  • 用户问"今天开什么"、"最近开奖号码"

注意事项

  • 页面用Vue.js动态加载,非开奖时间段(21:14-21:40外)可能无数据
  • 图库类页面(玄机图库、经典图库等)是图片,不抓取
  • 网站有大量博彩广告,解析时需过滤

📌 082 期实战案例 (2026-07-29 凌晨, 用户多次纠正)

事件流:

  1. cron 668dcf3ec54d lottery-draw-result 14:00 UTC (= 北京 22:00) 跑
  2. v_xg.json Qi=081, Nq=082, Week=周四, Day=30
  3. agent 推: "081 期 = 7/30 周四 21:30 开彩" — (实际 081 = 7/28 周二)
  4. agent 推: "082 期 = 8/1 周六 21:30" — (实际 082 = 7/30 周四)
  5. 用户反复纠正"081 时间错 / 不要分析 / 你直接跑不行吗"
  6. 真相: 挂牌日 = 开彩日 (sol.2344a.cc 挂牌 07-28 13:35 = 081 周二开彩)

坑 1 (v_xg.json 字段): Week/DayQi 期开彩日 (下次将开),不是"当前期"。

  • Qi=081 → 081 周二开 (7/28)
  • Week=周四 → 081 错的,实际 Qi 周二是周二,但 Week 字段是 Qi 期开彩日 — 这是 agent 多次误读的根本原因

坑 2 (挂牌日 vs 开彩日): sol.2344a.cc 挂牌帖的发布时间 ≠ 开彩日,实际是同一天(挂牌发出来当天就是开彩日)。挂牌提前 2-3 天的旧描述是错的

坑 3 (沟通): agent 答 "081 是周几" 时,反复用"为什么不是周二"的长篇分析 → 用户纠正"我说了,你不要分析,只说怎么取的就行了"。

正确做法:

  • 用户问"081 是周几" → 一行答: "挂牌日 = 开彩日, sol.2344a.cc 07-28 13:35 挂牌 = 081 周二开彩 (北京时间 21:30)"
  • 不展开 "为什么" / "不是周四" / "Qi 字段语义"
  • 出错立刻认错,不要找理由

🚨 硬规则 (每次推送前自检)

  1. 时区: 所有时间默认 北京时间 (UTC+8), 必须标"(北京时间)"后缀
  2. 挂牌日 = 开彩日 (硬规则): sol.2344a.cc 挂牌帖时间戳 = 实际开奖日,同天。旧描述"挂牌提前 2-3 天"是错的。
  3. v_xg.json 字段:
    • Qi = 下次将开期号
    • Data.1-7 = Qi-1 期 已开号码 (7 个)
    • Week/Day/Year/Moon = Qi 期 开彩日 (北京时间) — 不是"当前期"
    • Nq = 再下期
  4. 推送格式: 不写"刚开"/"最新" — 用具体期号+明确日期
  5. 沟通: 用户要直接说数据来源,不要长篇分析
  6. 4 框架分析: 是 reference 文档 (analysis-example-073/074/075.md),不是脚本。Cron 推送时agent 手动按 example 推演,不要等一个不存在的 python3 lottery.py qimen 命令。

Pitfalls (2026-07-29 更新)

  • sol.2344a.cc 全站 200 OK (替代失效的 sol.0051.cc):

  • v_xg.json 字段语义 (硬规则): Qi/Nq/Week/Day/Year/Moon 都指下期(不是当前期)。Data.1-7 才是 Qi-1 期号码。详见上文重要Pitfall

    • 实战案例 (2026-07-29 凌晨 0:43 北京): v_xg.json Qi=081 (7/30 周四下次将开), Data.1-7 是 080 期(7/28 周二已开)号码
    • 挂牌日 ≠ 开奖日: sol.2344a.cc 挂牌比实际开奖早 2-3 天
    • 取真刚开期号 + 号码: 7 号码 = Data.1-7; 期号 = Qi-1; 下期时间 = Week/Day + Nq/Week
    • 取真历史: sol.2344a.cc 挂牌索引 或本地 SQLite draws 表
  • 📌 推送格式偏好 (用户硬偏好, 2026-07-30 实战): QQ 推送用 markdown 横向表格 (每票 1 列, 4-8 票可滑动比较)。严禁 1 票 1 块 (垂直堆叠), 用户说过"用列表方式显示 / 把所有表格都换成这样的"。

    • 字段顺序: 名称表 + 项目表 (2 张表上下)
    • 列用票代码, 行用指标 (现价/股息率/趋势/MA50/支撑/离均线/ATR/策略)
    • 类似脚本: daily_t_analysis.py / dividend_alert.py / cn_dividend_buy_timing.py 全部已转横向表格
  • 时间默认北京时间(用户硬规则, 2026-07-30): 任何日期时间 (挂牌/开奖/推送) 默认 UTC+8 北京时间;cron schedule UTC → 换算时也明确标"北京"

    • v_xg.json Week/Day 是下期时间 (北京时间周二/四/六 21:30)
    • 挂牌日 ≠ 开奖日 (挂牌提前 2-3 天)
    • 用户纠正"082 时间错": 因为 agent 没标"北京时间" + 没区分挂牌日和开奖日
    • 沟通风格: 用户要"直接说怎么取的,不要分析/解释" — 错了立刻认错
  • v_xg.json 在 browser_navigate 下返回空白包装页: skill文档说"直接返回JSON,无需浏览器"——但在 cron agent 模式下 terminal 被拦截,只能用 browser_navigate。此时 btc.tktk.app/data/v_xg.json 显示的是一个带 Pretty-print 复选框的包装页,JSON 内容不在 DOM 里。临时方案: 用 browser_snapshot(full=true) 尝试,或改用 tktk.tktk4.cc 首页的 Vue iframe 框架内的数据。

  • e/api/kj.php?xg 返回空页面: 同样 Vue 包装,cron 模式无法获取实际开奖数据。

  • tktk.tktk4.cc 历史页 (history/) 返回 404: 不是正确路径。

  • sol.2344a.cc 历史API仍失效: /e/api/api.php?get=sixlist&year=YYYY 返回空数据(2026-07确认)。需要从挂牌帖文本提取历史期号

  • 历史数据无批量API: 目前没有可用的批量历史开奖数据API。替代: 从 sol.2344a.cc 挂牌列表按"期号/发布日期"索引

  • 生肖表URL会过期: sol.2344a.cc 的生肖表页面每年更新,旧URL会404。应先访问 https://sol.2344a.cc/sssx/ 列表页,找到最新年份的文章链接。

  • 中文彩票站内容多为图片: sol.2344a.cc 等网站的详细资料(公式、规律、技巧)嵌在图片中,curl/sed只能抓到文章标题索引,无法提取实际内容。需要用 browser 工具查看页面截图。

  • 抓取编码: 这些站点多为UTF-8 with BOMcurl 输出可能有 开头(BOM标记),不影响内容但需注意。

参考资料

  • references/zodiac-table.md: 2026年完整生肖五行波色对照表(号码→生肖→五行→波色→分类)
  • references/draw-dates.md: 2021-2023年搅珠日期(JS日历数据)
  • references/v_xg-qi-pitfall.md: v_xg.json Qi 字段语义陷阱实战(2026-07-29 发现,Qi = 下次将开期号, 不是已开)
  • references/common-knowledge.md: 生肖属性文章索引、关键概念
  • references/techniques.md: 规律秘诀文章索引(出波、波色法等)
  • references/patterns.md: 固定规律文章索引(日期定波、杀肖、出尾等)
  • references/strategies.md: 买码建议文章索引(赢钱秘诀、七戒律等)

定时任务

任务 时间(UTC) 内容
lottery-hot-data 周二/四/六 11:30 (19:30北京) 抓热数据+频率分析,推QQ
lottery-draw-result 周二/四/六 14:00 (22:00北京) 抓开奖结果入库,推QQ

开奖时间: 21:30 北京时间 → 先抓热数据分析(19:30),开奖后抓结果(22:00)。

注意: draw-result cron 跑时 7 号码已在 sol.2344a.cc 历史挂牌文里 (提前2-3天发布), agent 应该同时查 v_xg.json (当前 Qi 下期) + sol.2344a.cc 历史挂牌 (Qi-1 真已开)。