41565566c5cd68bd375178626c4f25e70ce58071
- 日志落盘:新增 internal/gui/logfile.go,写到 <用户配置目录>/huya-go/logs/huya-go.log,单文件 5MB 后滚动保留 5 个备份;「日志」页签顶部显示路径并支持打开目录/复制路径;写盘失败自动降级为仅界面输出 - 修复重复兑换:界面选品会同时提交 pid、名称与 targetText 里的同一 pid,normalizeTargets 现按 pid/名称去重;runState 再按「账号+奖品」记账,多个 target 命中同一奖品时只兑换一次(新增 skip_duplicate 结果) - 修复 use of closed network connection:成功后的异步刷新改为 runState.refresh 等待,RunTargets 返回前不再提前关闭连接 - queryHttpDns 增加 single-flight 与失败冷却,多账号并发建连只解析一次 - 新增 internal/gui/logfile_test.go 与 sniper/huya 回归测试;README 补日志说明
huya-go
虎牙活动积分兑换/抢购的 Go 复刻版。支持两种传输层,CLI 与 GUI 默认都走 http:
http(默认):走https://cdnws.api.huya.com/,兼容原有命令。wss:实验实现。CLI 需要显式指定-transport wss,GUI 在设置里切换;已按浏览器 HAR 改为 TAFWebSocketCommand外层和 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
推荐把账号 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"
日志
GUI 日志同时输出到界面和磁盘:
- 路径:
<系统用户配置目录>/huya-go/logs/huya-go.log(macOS 为~/Library/Application Support/huya-go/logs/huya-go.log,Windows 为%AppData%\huya-go\logs\huya-go.log)。 - 单文件上限 5MB,超出后滚动为
huya-go.log.1~huya-go.log.5,最旧的被丢弃。 - 界面「日志」页签顶部显示当前路径,可一键打开日志目录或复制路径。
参数说明
-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=2203pid=12889- 奖品名:
套装-潮萌小黄鸭 - 消耗积分:
988
远端配置里的子奖品代码不能直接当兑换 PID,实际兑换以 scoreExchangePrize 请求里的 pid 为准。
精英宝典/幸运币(2026-10-13 抓包)
m-shop.huya.com 积分中心的兑换记录里确认到:
sid=2277pid=13409- 奖品名:
幸运币礼包(小) - 消耗积分:
20 - 订单号格式:
sOrderId_2277_13409_<uid>_<时间戳>_<随机>
该活动的列表/积分/兑换接口与 sid=2203 走同一套 webActUI,可直接用 -cmd list -sid 2277 验证;同一次抓包里「开通精英宝典 / 购买精英币」属于商城付费链路(shopMiddleUI.* + 支付宝),本项目未实现,详见 WSS_NOTES.md。
Languages
Go
72.2%
TypeScript
23.4%
CSS
2.3%
JavaScript
1.8%
Shell
0.2%