yml2213
|
29aed15e4e
|
版本号 0.3.0 并补齐 timeSync 生成绑定
- internal/version/version.go:0.2.1 -> 0.3.0。版本号单一来源,exe 文件名、编译注入(-ldflags)与界面左下角标签共用这一处
- wails.json:info.productVersion 同步为 0.3.0(只影响 exe 文件属性)
- frontend/wailsjs/go/models.ts:补上 gui.Config.timeSync 字段。这个绑定只有 wails build 会生成(npm run build 不会),所以上一版加 TimeSync 时漏提交了
- 已执行 ./scripts/build-windows.sh 产出 build/bin/huya-gui-v0.3.0.exe(PE32+ GUI x86-64,内嵌版本号 0.3.0)
|
2026-10-16 16:15:17 +08:00 |
|
yml2213
|
828236eb1d
|
新增服务端时间校准,定时抢购按服务端时钟对齐触发
- 协议事实确认:launch.pingSignal 的 signal_ap_start/signal_ap_end 是 Unix 毫秒墙钟时间戳。真实夹具 signal_ap_start=1791891743288 对应北京时间 2026-10-13 19:42:23,与同批抓包订单号里的秒级时间戳 1791891953 同日;start 是服务端收到请求的时刻、end 是写出响应的时刻,实测相差 13ms
- 新增 internal/huya/timecal.go:TimeSample/TimeCalibration/OffsetHistory/RunTimeCalibration/AlignedTriggerTime/TryCalibrateServerTime。偏移 = signal_ap_start − (SentAt + RTT/2),误差上界取 RTT/2;默认 3 轮采样取「误差上界最小、其次 RTT 最低」的样本,再对最近 3 次偏移取中位数平滑;ServerTimestamp 丢弃解析后不在 2020-2100 的时间戳,避免字段单位变化时按错误偏移挪走抢购窗口
- HTTPClient 与 WSSClient 各自实现 TimeCalibrator(PingSignalSample 共用 pingSignalSampleWith 采样逻辑),各自持有 OffsetHistory
- launch.go:ServerElapsed 改用 PingSignalStartKey/PingSignalEndKey 常量
- CLI:新增 -time-sync(默认开),-at 按服务端时间理解,触发时刻 = 目标 − lead − 偏移;校准日志输出服务端时间、本机偏移、误差上界、RTT 与样本数
- GUI:Config.TimeSync(默认 true)+ 对齐触发与校准日志;前端设置面板新增「时间校准」开关并纳入配置读写
- 测试:新增 internal/huya/timecal_test.go,覆盖真实夹具时间戳换算、秒级/异常值拒绝、RTT/2 中点公式、多轮取优、中位数滤跳变、全失败降级与部分失败容错、跨钟差的触发时刻换算;README 补「时间校准」一节
- 验证:gofmt 干净、go build ./...、go test ./...、go test -race(huya/sniper/gui)、前端 npm run typecheck/build 全部通过
|
2026-10-16 16:13:29 +08:00 |
|
yml2213
|
d21b06a311
|
新增商品类目(限量返场/精英专享)支持与版本号 0.2.1
10.15 抓包确认:积分中心商城 PlayMallUI.queryAllocation 的商品与 webActUI.getActPrizeList(sid=2277) pid 完全一致,属于同一批商品,因此列表无需接商城链路;真号实测 sid=2277 返回 30 项(限量返场 99 共 12 项 + 精英专享 101 共 18 项),sid=2203 已返回空。\n\n- huya:解析商品 tag23/25/26/27/28(发布时间、上架/下架时间、每日时段),新增 PrizeInfo.CategoryIDs/InCategory/StartsAt/NotYetOnSale 与响应级 CategoryStats/CategorySummary/FilterByCategory,列表日志带类目统计\n- sniper:Config.Category 限定自动选品范围,未命中提示带类目\n- CLI:新增 -category / -category-only\n- GUI:Config.Category、ListPrizes 回传类目字典与统计;界面商品列表按类目分页签、每行标注类目、未上架显示上架时间与倒计时,所选类目随配置提交给监控\n- 测试:新增 internal/huya/category_test.go 与 sniper 类目用例;README/WSS_NOTES 补记结论
|
2026-10-15 18:23:38 +08:00 |
|
yml2213
|
4208f1d82f
|
版本号单一来源,新增带版本号的 Windows exe 构建脚本
|
2026-10-14 21:34:08 +08:00 |
|
yml2213
|
cff831ae47
|
默认传输通道改为 WSS,http 作为可回退通道
|
2026-10-14 21:33:23 +08:00 |
|
yml2213
|
8c4b15066f
|
新增实例槽位隔离与结构化日志,多开不再共用日志与账号
|
2026-10-14 21:32:49 +08:00 |
|
yml2213
|
f96fa7d858
|
账号作战表新增「兑换结果」列,移除已废弃的分析文档
- 账号作战表新增「兑换结果」列:明确展示 已抢到(含奖品名与订单号)/ 未成功(含原因与尝试次数)/ 已兑换(来自服务端兑换记录兜底)/ 抢购中 / 待抢购 / 已跳过重复兑换
- 抢到奖品的账号整行标绿并加左侧色条,一眼可见
- 复盘表时间列改为可读时间(秒级时间戳格式化)
- 按用户确认删除已废弃的 purchase_logic_analysis.md
|
2026-10-13 20:46:42 +08:00 |
|
yml2213
|
41565566c5
|
GUI 日志落盘,修复同一奖品重复兑换与监控结束竞态
- 日志落盘:新增 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 补日志说明
|
2026-10-13 20:34:43 +08:00 |
|
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 |
|
yml2213
|
e8bb4eb571
|
补全过滤入口与直接兑换,优化兑换分类和 WSS 建连
- 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)并重新生成前端绑定
|
2026-10-13 19:57:08 +08:00 |
|
yml2213
|
72d59670d4
|
增加异步日志和库存展示
|
2026-07-07 08:04:54 +08:00 |
|
yml2213
|
327b996079
|
优化定时抢购界面
|
2026-07-06 22:30:48 +08:00 |
|
yml2213
|
ce6fdcc371
|
优化 CK 管理和商品缓存
|
2026-07-06 21:33:52 +08:00 |
|
yml2213
|
6e20ce425b
|
移除已忽略构建产物
|
2026-07-06 20:30:43 +08:00 |
|
yml2213
|
6d8be28225
|
优化 CK 导入和监控配置
|
2026-07-06 20:30:09 +08:00 |
|
yml2213
|
f78c731f32
|
对齐 WSS 流程并更新配置
|
2026-07-06 19:15:14 +08:00 |
|
yml2213
|
1d15fadfd9
|
修复 wss 部分错误
|
2026-07-06 18:30:34 +08:00 |
|
yml2213
|
4235cce4f5
|
init
|
2026-07-06 18:08:23 +08:00 |
|