yml2213 36aadae90a 按 10.13 抓包对齐 WSS:host 自动解析、exp 回传、pingSignal 与兑换记录字段
- 新增 launch.queryHttpDns:类型定义 + HTTPClient.QueryHttpDns + WSSClient.resolveHost(TTL 缓存、多 host 轮询、失败回退默认 host);Host 留空或等于历史默认值即视为自动解析
- WSS 握手 baseinfo 补 tag5=exp 与 tag10 空 customHeaders;UpdateUserExpsReq(cmd23) 改为回传 getConfig 的版本 map(缓存供重连复用)
- 新增 launch.pingSignal:HTTP 预热改走 pingSignal,WSS 预热在建连后探测业务通道(失败仅记日志)
- UserPrizeInfo 补 tag12 orderId/tag14 图标/tag16 prizeId/tag17 shopItemId/tag19 itemId/tag20 ext/tag21 exchangeDate,前端复盘表加订单号列
- taf 补 WriteListString/ReadListString/ReadMapStringInt64/ReadMapStringStruct
- 新增 internal/huya/launch_test.go:用抓包真实报文做字节级夹具(baseinfo 122B、queryHttpDns 请求 93B、记录 308B 等)
- CLI -wss-host 默认改为留空;GUI 设置支持留空并给出占位提示;README/WSS_NOTES 同步协议细节
2026-10-13 20:19:14 +08:00
2026-07-06 18:08:23 +08:00
2026-07-06 18:47:10 +08:00
2026-07-06 18:08:23 +08:00

huya-go

虎牙活动积分兑换/抢购的 Go 复刻版。支持两种传输层,CLI 与 GUI 默认都走 http:

  • http(默认):走 https://cdnws.api.huya.com/,兼容原有命令。
  • wss:实验实现。CLI 需要显式指定 -transport wss,GUI 在设置里切换;已按浏览器 HAR 改为 TAF WebSocketCommand 外层和 WSS 初始化流程,仍建议先用真实 Cookie 小流量验证。

构建

CLI:

go test ./...
go build -o huya-go ./cmd/huya-go

GUI:

cd frontend
npm install
npm run typecheck
cd ..
wails build -debug -nopackage

GUI 二进制输出到 build/bin/huya-gui。开发时可以使用 wails dev 启动 Wails + React + Ant Design 界面。

推荐把账号 Cookie 放到本地文件,一行一个账号:

yyuid=...; udb_uid=...; guid=...; ...

不要把 Cookie、token、JWT 提交到仓库或写进文档。

常用命令

GUI 界面提供账号预览、奖品列表、积分查询、兑换记录、直接兑换、监控抢购、实时日志。

CLI 示例:

查询奖品列表:

./huya-go -cmd list -sid 2203 -cookie-file cookie.txt

查询积分:

./huya-go -cmd score -sid 2203 -cookie-file cookie.txt

直接兑换指定 PID:

./huya-go -cmd exchange -sid 2203 -pid 12889 -cookie-file cookie.txt -transport http

按奖品名轮询并抢购:

./huya-go -cmd monitor -sid 2203 -name 小黄鸭 -cookie-file cookie.txt -transport http -loops 20 -delay 120 -concurrency 5

定时开始:

./huya-go -cmd monitor -sid 2203 -pid 12889 -cookie-file cookie.txt -transport http -at "2026-07-06 20:00:00"

参数说明

  • -cmd:list、score、records、exchange、monitor。
  • -sid:活动 SID,必填。
  • -pid:奖品 PID。exchange 必填,monitor 可用 -pid 或 -name。
  • -max-price:目标奖品最高积分,0 表示不限制(CLI 与 GUI 设置都支持)。
  • -min-left:目标奖品最少剩余库存,0 表示不限制(CLI 与 GUI 设置都支持)。
  • -cookie:单账号 Cookie。
  • -cookie-file:多账号 Cookie 文件。
  • -transport:http 或 wss,默认 http;WSS 仍为实验通道。
  • -wss-host:WebSocket host。默认留空,自动调用 launch.queryHttpDns 解析(带 TTL 缓存、多 host 轮询),解析失败时回退内置默认 host;需要固定时可显式指定。
  • -timeout:单次调用超时秒数。
  • -loops、-delay、-concurrency:轮询次数、轮询间隔、并发账号数。
  • -stop-after-success:monitor 中任一账号成功后是否停止。
  • -v:输出调试日志。

已确认的小黄鸭参数

2026-07-06 浏览器手动抢购抓包确认:

  • sid=2203
  • pid=12889
  • 奖品名:套装-潮萌小黄鸭
  • 消耗积分:988

远端配置里的子奖品代码不能直接当兑换 PID,实际兑换以 scoreExchangePrize 请求里的 pid 为准。

精英宝典/幸运币(2026-10-13 抓包)

m-shop.huya.com 积分中心的兑换记录里确认到:

  • sid=2277
  • pid=13409
  • 奖品名:幸运币礼包(小)
  • 消耗积分:20
  • 订单号格式:sOrderId_2277_13409_<uid>_<时间戳>_<随机>

该活动的列表/积分/兑换接口与 sid=2203 走同一套 webActUI,可直接用 -cmd list -sid 2277 验证;同一次抓包里「开通精英宝典 / 购买精英币」属于商城付费链路(shopMiddleUI.* + 支付宝),本项目未实现,详见 WSS_NOTES.md。

S
Description
No description provided
Readme
20 MiB
Languages
Go 72.2%
TypeScript 23.4%
CSS 2.3%
JavaScript 1.8%
Shell 0.2%