- GUI 接线 Exchange 绑定:新增「直接兑换」按钮,结果带 category/message 并进入结果面板 - 补 -max-price/-min-left(CLI 与 GUI 设置),Target 的价格与库存过滤不再悬空 - 删除死代码 sendUpdateUserInfo 及其请求结构体(浏览器流程不含该帧) - ClassifyExchange 改为多路判定:合并 msg/actPreCondition/exchangeInfo 文案,status=200 且有 orderId 视为成功,新增 condition 分类(precondition 门禁) - WSS 建连改为锁外 dial、锁内注册,同 uid 并发调用共享一次握手 - 默认传输层统一为 http(CLI/GUI/README),.gitignore 忽略 .DS_Store - 同步 Wails 依赖升级(2.12.0 -> 2.15.0)并重新生成前端绑定
101 lines
2.9 KiB
Markdown
101 lines
2.9 KiB
Markdown
# huya-go
|
||
|
||
虎牙活动积分兑换/抢购的 Go 复刻版。支持两种传输层,CLI 与 GUI 默认都走 `http`:
|
||
|
||
- `http`(默认):走 `https://cdnws.api.huya.com/`,兼容原有命令。
|
||
- `wss`:实验实现。CLI 需要显式指定 `-transport wss`,GUI 在设置里切换;已按浏览器 HAR 改为 TAF `WebSocketCommand` 外层和 WSS 初始化流程,仍建议先用真实 Cookie 小流量验证。
|
||
|
||
## 构建
|
||
|
||
CLI:
|
||
|
||
```bash
|
||
go test ./...
|
||
go build -o huya-go ./cmd/huya-go
|
||
```
|
||
|
||
GUI:
|
||
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
npm run typecheck
|
||
cd ..
|
||
wails build -debug -nopackage
|
||
```
|
||
|
||
GUI 二进制输出到 `build/bin/huya-gui`。开发时可以使用 `wails dev` 启动 Wails + React + Ant Design 界面。
|
||
|
||
## Cookie
|
||
|
||
推荐把账号 Cookie 放到本地文件,一行一个账号:
|
||
|
||
```text
|
||
yyuid=...; udb_uid=...; guid=...; ...
|
||
```
|
||
|
||
不要把 Cookie、token、JWT 提交到仓库或写进文档。
|
||
|
||
## 常用命令
|
||
|
||
GUI 界面提供账号预览、奖品列表、积分查询、兑换记录、直接兑换、监控抢购、实时日志。
|
||
|
||
CLI 示例:
|
||
|
||
查询奖品列表:
|
||
|
||
```bash
|
||
./huya-go -cmd list -sid 2203 -cookie-file cookie.txt
|
||
```
|
||
|
||
查询积分:
|
||
|
||
```bash
|
||
./huya-go -cmd score -sid 2203 -cookie-file cookie.txt
|
||
```
|
||
|
||
直接兑换指定 PID:
|
||
|
||
```bash
|
||
./huya-go -cmd exchange -sid 2203 -pid 12889 -cookie-file cookie.txt -transport http
|
||
```
|
||
|
||
按奖品名轮询并抢购:
|
||
|
||
```bash
|
||
./huya-go -cmd monitor -sid 2203 -name 小黄鸭 -cookie-file cookie.txt -transport http -loops 20 -delay 120 -concurrency 5
|
||
```
|
||
|
||
定时开始:
|
||
|
||
```bash
|
||
./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。默认值来自 2026-07-06 手动抓包,失效时应从浏览器抓包或 `launch.queryHttpDns` 结果更新。
|
||
- `-timeout`:单次调用超时秒数。
|
||
- `-loops`、`-delay`、`-concurrency`:轮询次数、轮询间隔、并发账号数。
|
||
- `-stop-after-success`:`monitor` 中任一账号成功后是否停止。
|
||
- `-v`:输出调试日志。
|
||
|
||
## 已确认的小黄鸭参数
|
||
|
||
2026-07-06 浏览器手动抢购抓包确认:
|
||
|
||
- `sid=2203`
|
||
- `pid=12889`
|
||
- 奖品名:`套装-潮萌小黄鸭`
|
||
- 消耗积分:`988`
|
||
|
||
远端配置里的子奖品代码不能直接当兑换 PID,实际兑换以 `scoreExchangePrize` 请求里的 `pid` 为准。
|