yml2213
|
5631f579ea
|
重构: 按领域拆分大文件,清理死代码和空目录
app.go (768行) 拆分为 6 个文件:
- app.go: App struct/辅助方法/NewApp/startup/shutdown/GetVersion
- app_products.go: 商品加载/账号查询
- app_seckill.go: 抢购控制/日志/时间
- app_verify.go: 积分查询/兑换记录复验
- app_export.go: 账号导出/整理
- app_activity.go: 活动切换/配置保存
scheduler.go (1141行) 拆分为 4 个文件:
- scheduler.go: struct/常量/设置/RunNow主循环/executeRound/辅助函数
- attempt.go: runAttempt/runAttemptFast/激进模式缓存
- warmup.go: 预热管理/warmupAttempts
- schedule_timer.go: 定时抢购/时间校准/定时器管理
其他清理:
- CollectFontCandidates 从 config 包移到 image 包(职责归属)
- 删除 logger 死代码: ParseLogLine/ParseLogMeta/DetectLogLevel/
IsLogLevel/LogMeta/LogDebug/cutBracket 等反解析函数及对应测试
(日志结构化后不再有生产调用方)
- 删除 static/ 空目录残留
|
2026-07-29 13:19:43 +08:00 |
|
yml2213
|
b72a58fd57
|
重构: 日志系统结构化,消除字符串反解析
旧链路:LogEvent→log.Print→logFileWriter→MemoryLogStore.Write
再用 ParseLogLine 字符串切割把分类/级别/账号反解析回来,格式一调就崩。
新链路:LogEvent 直构 LogEntry(Time/Level/Category/Account 直接填值),
经 sink 分发到内存(同步)/文件(异步)/终端。Message 仍用 formatLogLine
渲染保持文件文本格式与前端清理逻辑兼容。
- MemoryLogStore 新增 Append(entry) 替代 Write 的字符串解析路径
- 删除 logFileWriter,新增 sink 统一管理三路输出
- 删除 log.SetOutput/log.Print 依赖
- 保留 ParseLogLine/DetectLogLevel/formatLogLine(AsyncLogWriter 丢弃
统计与测试仍用),但 log_store 不再调用
- 新增 TestStructuredLogging 覆盖 LogEvent→sink→Append 链路与 minLevel 过滤
|
2026-07-29 12:52:26 +08:00 |
|
yml2213
|
7c2c5a61a6
|
重构: 账号管理抽离、强类型返回、消除反射、删除死字段
- 抽离账号管理为独立 AccountStore,Scheduler 只持有引用,
职责单一化(scheduler.go 减少 ~110 行)
- Wails 绑定方法返回结构体替代 map[string]any(新增 responses.go),
前端获得强类型,字段名保持兼容无需改前端
- ExchangeRecord 移至 types 包,消除 types↔client 循环依赖
- extractAPIStatus 用 apiResponder 接口替代 reflect 逐字段查找,
types.APIResponse 与 ExchangeListResponse 实现 APIStatus 方法
- 删除 types.Account.Password 死字段(鉴权仅用 Cookie)
- 重新生成 Wails 绑定,前端 vue-tsc 类型检查通过
|
2026-07-29 12:47:01 +08:00 |
|
yml2213
|
3ae9cb4a42
|
重构: 活动热切换并发安全 + 代码清理优化
- 活动切换并发安全:App/Scheduler 增加 client/cfg 读写锁与快照访问,
支持运行中热替换客户端,切换活动不再静默覆盖用户自定义 timeApiUrl
- 启动失败时写入崩溃日志文件便于事后排查
- 前端类型声明从 Wails 自动生成的绑定派生,避免手写契约漂移
- 提取 parseAccountFile 消除 ExportAccounts/OrganizeAccounts 重复解析逻辑
- 删除 utils 中未使用的 ReadJSON/WriteJSON/WriteError 及空目录 internal/app
- gofmt 统一格式化(activity/types/scheduler 字段对齐)
- 新增 logger/seckill/utils 单元测试
- 清理 git 中遗留产物(frontend/app.js、yml.txt、其他日志/)并补全 .gitignore
|
2026-07-29 12:33:16 +08:00 |
|
yml2213
|
ed3fd5f09e
|
fix: peacematch 兑换用 multipart/form-data(与抓包一致)
根据实际兑换抓包修正:
- Content-Type 从 urlencoded 改回 multipart/form-data(浏览器实际用 multipart)
- postMultipart 支持组合 token csrf\x00ctn,自动拆分并合并 cvl_csrf_token+acf_ccn 到 Cookie
- 移除不再需要的 postForm 方法和 net/url 导入
- 验证:表单字段(manualID/commodityID/num/rid/ctn)与抓包完全一致,
storedetail 确认无 preExchange 字段(时间校准修复正确)
抓包来源:/Users/yml/Desktop/抓包/douyu/7.29/电竞手册-兑换并查询信息与积分.har
|
2026-07-29 11:08:49 +08:00 |
|
yml2213
|
599f9d71f0
|
fix: 电竞手册用 ctn(acf_ccn) 鉴权替代 csrfToken
peacematch 与 peace 的兑换接口鉴权机制完全不同:
- peace: 表单发 csrfToken 字段,multipart 格式
- peacematch: 表单发 ctn 字段(值=acf_ccn),urlencoded 格式,
cvl_csrf_token 只放 Cookie,不需要 batchExchangeLimit/preExchange
改动:
- Activity 加 UseCTN/CTNURL 字段
- GenerateCSRF 对 UseCTN 活动额外 FetchCTN 获取 acf_ccn,组合返回
- 新增 postForm(urlencoded) 方法用于 peacematch 兑换
- Exchange 按 UseCTN 分流:peacematch 发 ctn 字段,peace 发 csrfToken
- BatchExchangeLimit/PreExchange 对 UseCTN 活动跳过(返回默认值)
- 参考 /Users/yml/codes/douyu_login_py 中 Python 实现
|
2026-07-29 11:05:46 +08:00 |
|
yml2213
|
8e52e12005
|
fix: 时间校准接口全局复用旧 peace/storedetail,修正活动名称
- 从 Activity 结构体移除 TimeAPIURL 字段,时间校准与活动无关,
统一用 constants.DefaultTimeAPI(peace/storedetail 能稳定返回 currentTime)
- 旧活动 peace DisplayName 从"和平手册"修正为"精英手册"
- 更改项目默认端口避免冲突:Vite 5173→15173,Wails dev 34115→34215
|
2026-07-29 10:48:42 +08:00 |
|
yml2213
|
f4d33d19c0
|
增加电竞手册
|
2026-07-29 10:36:44 +08:00 |
|
yml2213
|
c61be33d77
|
版本号 0.1.2 → 0.1.3
|
2026-06-28 15:30:23 +08:00 |
|
yml2213
|
1996b3a3fc
|
优化时间校准:避免预热重复、平滑偏移生效
- 复校时跳过预热定时器,初始调用已完成预热
- calibrateDouyuTime 返回平滑后的偏移值,定时器调度使用中位数过滤跳变
|
2026-06-28 15:28:59 +08:00 |
|
yml2213
|
b0862c55fc
|
修复定时抢购前端显示“剩余 undefined 秒”问题
之前移除手动提前量时误删了 remainSecond 返回值,前端仍依赖该字段显示倒计时
|
2026-06-28 15:23:16 +08:00 |
|
yml2213
|
d1b8fa0e46
|
修复兑换响应JSON解析Bug并优化时间校准
- 修复Exchange/BatchExchangeLimit响应data为空字符串时JSON解析失败,导致"点击太快"等错误无法被冷却机制捕获
- 复校时间从触发前10秒改为3秒,减少偏移漂移
- 新增校准偏移中位数平滑,保留最近3次取中位数过滤跳变异常
- 提前量从固定50ms改为动态值 max(50ms, errorBound + RTT/2)
- 复校时重新计算触发时间,适应校准偏移变化
|
2026-06-28 15:15:40 +08:00 |
|
yml2213
|
00fa48722f
|
提交日志
|
2026-06-27 19:16:29 +08:00 |
|
yml2213
|
4e4ab0ba24
|
100--50
|
2026-06-27 19:16:16 +08:00 |
|
yml2213
|
0f5e85d94e
|
优化抢购逻辑:移除手动提前量、冷却累计停止、默认包数2
- 移除用户手动提前量设置,改为固定 100ms 内部提前量
- 新增冷却累计停止:单账号冷却 ≥5 次自动放弃
- 默认发包数从 1 改为 2
- 前端移除提前量输入框和 localStorage 存取
|
2026-06-27 19:07:02 +08:00 |
|
yml2213
|
76c942f10d
|
修复抢购流程多项问题
- executeRound 四次加锁合并为单次,减少锁竞争
- shouldFallbackStandard token 匹配从宽泛改为精确匹配 cvl_csrf_token
- retryCooldownDuration 新增操作频繁/请求过多/请求太频繁三种冷却匹配
- behaviorCooldown 从 8s 降为 5s
- BestServerTimeCalibration 部分失败时不再返回 error,仅全败才报错
- warmupSchedule 增加 gen 计数器+warmupRunMu 互斥锁,防止 resync 时新旧预热并发
- ScheduleRun 中 clearWarmups 移入锁内 stopSchedulesLocked 之后执行
|
2026-06-27 17:03:19 +08:00 |
|
yml2213
|
99885c1ddd
|
优化抖动幅度和日志双时间显示
- jitterDuration 抖动从 base/3 降至 base/10,避免过大的随机延迟
- 日志新增斗鱼双时间显示:本地时间后追加 (D斗鱼时间),前端蓝色高亮
- 时间校准后自动同步斗鱼偏移量到日志模块
|
2026-06-27 16:39:23 +08:00 |
|
yml2213
|
8029333613
|
默认激进模式
|
2026-06-27 15:56:19 +08:00 |
|
yml2213
|
db917698f9
|
优化抢购成功图片生成逻辑
|
2026-06-27 13:20:53 +08:00 |
|
yml2213
|
c54d64b2eb
|
提升版本并调整抢购默认设置
|
2026-06-27 08:56:26 +08:00 |
|
yml2213
|
c90f80045e
|
优化抢购流程日志和复验性能
|
2026-06-27 08:07:21 +08:00 |
|
yml2213
|
c244cc0833
|
合并 test/aggressive-mode 到 main
|
2026-06-26 20:33:25 +08:00 |
|
yml2213
|
818e1ff11b
|
修复抢购后 UI 状态不刷新
|
2026-06-26 20:23:06 +08:00 |
|
yml2213
|
87707dfd9e
|
提交日志
|
2026-06-26 18:14:27 +08:00 |
|
yml2213
|
bb5da41120
|
账号文件已自动转换为 Windows 换行格式
|
2026-06-26 15:36:15 +08:00 |
|
yml2213
|
bb24858e2b
|
优化编译格式
|
2026-06-26 15:29:26 +08:00 |
|
yml2213
|
e9621df0b9
|
修复激进模式错误
|
2026-06-26 15:20:18 +08:00 |
|
yml2213
|
e8f101d0b8
|
修复错误
|
2026-06-26 14:21:54 +08:00 |
|
yml2213
|
59bd34b004
|
feat: 新增激进抢购模式
- 添加 SeckillMode 类型(标准/激进)
- 激进模式:第一轮完整校验,后续复用 CSRF 直接兑换
- 每轮开始时清空缓存,强制重新获取 CSRF
- 设置面板添加模式切换
- 缓存 30 秒有效期,CSRF 错误时自动回退标准模式
|
2026-06-26 13:58:54 +08:00 |
|
yml2213
|
385a6d882c
|
删除文件
|
2026-06-26 13:47:15 +08:00 |
|
yml2213
|
9bff652c66
|
feat: 自定义重试间隔策略 + 修复按钮hover样式
- 新增重试间隔阶段配置,支持自定义时间分界点和频率
- 默认配置: 0-8秒=130ms, 8-25秒=260ms, 25-75秒=900ms
- 设置面板添加可增删的阶段配置 UI
- 修复按钮 hover 时文字变白的问题
|
2026-06-26 13:46:46 +08:00 |
|
yml2213
|
a955128887
|
优化: 库存耗尽继续重试 + 默认并发数改为150
- 库存耗尽后不再停止,继续重试(斗鱼可能补货)
- 默认并发数从 80 提升到 150,提高抢购速度
|
2026-06-26 13:00:47 +08:00 |
|
yml2213
|
64a63d1546
|
删掉旧的代码
|
2026-06-26 12:40:56 +08:00 |
|
yml2213
|
7f5da30698
|
v0.1.0: 新增CK管理功能
功能:
- 新增CK管理页面,支持复验抢购结果和整理账号文件
- 复验功能:查询斗鱼真实兑换记录,统计已抢到/未抢到的账号
- 整理CK功能:分离已抢到的账号到新文件,原文件只保留未抢到的
- 导出文件名优化:使用中文商品名+日期时间格式(如:user_已抢到_雪国2号_20260626_150405.txt)
- 复用左侧商品选择,统一数据源
接口:
- VerifyAndExport: 复验并统计
- ExportAccountsWithProduct: 导出账号(自动命名)
- OrganizeAccounts: 整理账号文件
版本: 0.1.0
|
2026-06-26 12:40:41 +08:00 |
|
yml2213
|
96b5afb756
|
解决冲突: 优化日志/复验 UI
- 标签页更紧凑(字体 11px,高度 24px)
- 日志行使用 flex 布局避免换行
- 抢购结果 key/value 分离显示
- 统计面板使用卡片式布局
- 复验结果长文本自动截断
- 隐藏横向滚动条
|
2026-06-26 11:39:46 +08:00 |
|
yml2213
|
031220d7e7
|
兑换复验增加时间展示
|
2026-06-26 11:21:11 +08:00 |
|
yml2213
|
7cb62c0078
|
新增: 兑换复验功能
- 新增 exchangeList 接口查询斗鱼真实兑换记录
- 前端添加「兑换复验」标签页
- 点击「🔍 复验」按钮可查询所有账号的兑换记录
- 复验结果与软件内部状态对比,用于验证抢购结果
- 移除 frontend/dist 的 git 跟踪
|
2026-06-26 11:10:33 +08:00 |
|
yml2213
|
b8ddc63ad3
|
移除 frontend/dist 的 git 跟踪
|
2026-06-26 11:01:18 +08:00 |
|
yml2213
|
ebbc8f2d5c
|
优化: 兑换上限视为成功
- classifyRetryStop 添加 success 返回值
- 兑换上限(2019)现在算作抢购成功,而非失败
- 前端状态显示:兑换上限显示为「已抢到」
- 设置弹窗说明更新
以日志为例:成功率从 0.6% 提升到 39.4%(63/160)
|
2026-06-26 11:00:07 +08:00 |
|
yml2213
|
54b5bd90ae
|
优化前端
|
2026-06-26 10:56:25 +08:00 |
|
yml2213
|
88a386b588
|
优化 ui
|
2026-06-26 09:38:14 +08:00 |
|
yml2213
|
4ae587d76b
|
抢购逻辑优化
|
2026-06-26 01:14:23 +08:00 |
|
yml2213
|
e6116fd8f0
|
优化日志
|
2026-06-25 17:41:50 +08:00 |
|
yml2213
|
8790c4ca33
|
增加设置界面、debug日志等级、版本号展示、构建脚本
- 新增设置弹窗: trace开关/正文上限、日志等级(debug/info/warn/error)、并发数、重试次数
- 配置运行时生效,持久化到 config.json
- 日志系统支持 debug 级别过滤
- 工具栏展示版本号(v0.0.2),来源 wails.json + constants.go
- 抢购并发数和重试次数改为读取配置,不再写死常量
- 新增 build.sh 构建脚本,Windows exe 文件名带版本号
- config.json 加入 .gitignore
|
2026-06-24 20:18:33 +08:00 |
|
yml2213
|
154e55d484
|
初步优化成全部go+wails
|
2026-06-24 19:11:02 +08:00 |
|
yml2213
|
86374fdd4d
|
优化抢购
|
2026-06-20 05:54:25 +08:00 |
|
yml2213
|
f04ba4ed64
|
多次校对时间等等
|
2026-06-19 23:22:20 +08:00 |
|
yml2213
|
dd96bc0402
|
测试-1
|
2026-06-19 22:11:04 +08:00 |
|
yml2213
|
878daa4ab8
|
优化日志
|
2026-06-19 13:02:28 +08:00 |
|
yml2213
|
59b9dd12ef
|
优化日志系统
|
2026-06-19 12:10:55 +08:00 |
|