Files
dygou_go/internal/constants/constants.go
T
yml2213 67f0b28ab6 按"锁单优先、支付从容"放宽支付时序,发布0.3.4
设计前提(此前被我自己违反过一次):锁单一旦成功就占住了库存(斗鱼锁单有效期 300 秒),
支付晚几秒没有任何损失,所以支付环节不该抢时间——斗鱼对"锁单→支付"有最短间隔,
打得太密只会收到"您点击太快"、把账号往风控上推。

- 首次支付等待 2.3-3.0s → 2.5-3.5s,给实测阈值 (1.68s, 2.1s] 留更足余量
- 支付退避阶梯全面放缓(不再追求快重试):
  在途 300ms→1s 改为 500ms→2s;频控 800ms→2s 改为 1.5s→4s;其它 400ms→1.2s 改为 800ms→2.5s
- 单笔支付总预算 120s → 180s:仍远小于锁单 300 秒有效期,但足够扛住两次 10-03 级别的
  服务端堵塞,同时把请求数减半
- 把这条设计前提写进 payLockedOrder 与支付阶梯的注释,避免以后又被当成"浪费"优化掉
- 新增 TestFirstPayDelayStaysAboveServerMinimum:断言首次支付等待不低于实测阈值 2 秒、
  等待区间合法、总预算大于首次等待上限
- 设置页补充说明:锁单优先、支付晚几秒无损失,以及支付重试上限改为 180 秒

确认既有架构已经满足该前提(无需改动):每账号独立循环,一个账号在支付时其它账号继续锁单;
并发额度只按单次请求发放,支付等待期间不占额度;75 秒窗口只限制发起新锁单,不限制支付;
已锁单的账号不再发起新锁单以免重复下单。
2026-10-03 19:43:56 +08:00

36 lines
1.3 KiB
Go

package constants
import "time"
// Version 应用版本号,与 wails.json version 同步。
const Version = "0.3.4"
// BuildTime 构建时间,由编译时 ldflags 注入。
var BuildTime = "unknown"
const (
BaseURL = "https://www.douyu.com"
UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"
DefaultAttempts = 2
DefaultConcurrency = 150
ProductCacheTTL = 30 * time.Second
DefaultAppDataDirName = "douyu-go"
DefaultConfigFile = "config.json"
DefaultAccountFile = "accounts.txt"
DefaultLogDir = "logs"
DefaultSuccessDir = "success_images"
// LegacyDefault* 是旧版本相对工作目录存储的位置,仅用于首次迁移。
LegacyDefaultConfigFile = "config.json"
LegacyDefaultAccountFile = "data/user.txt"
// DefaultTimeAPI 服务端时间校准接口。
// 斗鱼服务器时间与活动无关,统一用精英手册的 storedetail(能稳定返回
// data.preExchange.currentTime),所有活动共用。
DefaultTimeAPI = BaseURL + "/wgapi/ordnc/activity/peace/storedetail?manualID=G4KA4Qnz4LDp7&commodityID=20260120QYOOB_bag274&rid=9263298"
)
// CST 中国标准时间 UTC+8。
var CST = time.FixedZone("CST", 8*3600)