后台原本靠人工逐批点「CK 检测」发现失效账号,1.2 万个账号根本盯不过来。
P1a 把「哪些账号失效了」自动化:自动挑久未检测的账号、调现成检测接口、
把结果写回 ck_check_*。**本作业不替换任何 CK**,重登仍由人工点,符合规划里
「先做只读/只提示,确认无误再做自动动作」的渐进上线原则。
实现:
- 迁移 20261002_0037:automation_jobs / automation_runs 两张表,
login_tasks 加 relogin_attempts / relogin_next_at / relogin_last_error
(为 P1b 备好),accounts 加 auto_managed(特殊账号不参与自动化);
- services/automation/scheduler.py:进程内调度线程,60s tick,状态全部落库
(重启不丢调度进度、不重复跑轮);AUTOMATION_ENABLED 默认关闭,作业开关
也默认关闭;ensure_jobs 只补缺失行、不覆盖运维改过的配置;
作业异常只记 failed,不拖垮调度线程;单容器 --workers 1,无需分布式锁;
- services/automation/jobs/ck_health.py:选行口径与人工检测一致
(cookie_holding_filter:持有 CK 且无在途尝试),叠加久未检测、
auto_managed、batch_size,按 ck_checked_at 升序(最久没查的优先);
只写 ck_check_status / ck_check_result / ck_checked_at;
- routers/automation.py:GET /jobs、PATCH /jobs/{key}、POST /jobs/{key}/run、
GET /runs;新增权限点 automation:view(运营可看)与 automation:manage
(仅超管),改配置与手动触发都写审计;
- 顺带补 POST /api/login/batch 的审计(此前批次是谁发起、多少账号无据可查);
- 前端 /automation 页:作业卡片(开关/周期/单轮条数/并发)、运行历史、
「立即跑一次」;总开关未打开、调度线程未运行时给明确提示。
验证:
- 22 条新测试覆盖调度器行为(只跑到点的、异常不抛出、下轮时间、配置不被重置)、
选行条件(在途尝试/auto_managed/间隔/batch_size)、接口与权限,其中一条
专门断言巡检后 cookie/status/message/attempt_status 一字未动;
- 全量 257 条通过;前端 tsc 与构建通过;
- 端到端用 3 个真实账号跑真实斗鱼接口:巡检结果与直接调 check_douyu_cookie
逐条一致(3/3 valid),CK 与尝试状态全程未变。
顺带修掉一处会炸生产的坑:DB 时间列读出来是 naive UTC,直接与
datetime.now(UTC) 比较会 TypeError,现统一走 _as_utc() 补时区。
项目文档索引
更新时间:2026-10-02
当前入口
- 自动化与资料收集规划:CK 自动管理、资料收集链接、皮肤台账与半自动工单的分期计划(规划中,未开工)。
- 皮肤准入映射分析:C 桶皮肤类到斗鱼商品目录的归一与覆盖分析(923 个快手名 → 78 个斗鱼商品,覆盖率 40.1%)。
- 虎牙 Cookie 路线状态:当前实现、字段状态、验证边界和后续工作。
- 虎牙网页设备字段溯源:浏览器证据、字段来源和生成算法。
- 虎牙 Cookie 合并审计与来源矩阵:字段来源约束和合并策略。
- 虎牙精英宝典联调指南:工作台联调顺序和只读验证方法。
虎牙业务与协议
- 虎牙精英宝典 9.1 全流程分析
- 虎牙精英宝典后端与抓包对照
- 虎牙精英宝典 8.31 Python 重分析
- 虎牙精英宝典联调指南
- 网页 Cookie 缺失字段历史方案
- 虎牙 App 登录总览
- 虎牙纯 Python 自动登录总结
虎牙设备与加密逆向
- HDID 算法生成
- HDID 研究记录
- 标识符命名规范
- 铸币机终局总结
- App 登录协议抓包实证
- App 登录 WUP 明文抓包
- App 登录加密算法动态验证
- App 登录 APK 静态分析
- App 登录逆向笔记
- 扫码登录闭环逆向
- hyCred 签发侦察笔记
设备注册与运行工具
鱼翅充值接口
文档约定
- 带日期的抓包和逆向笔记属于历史证据,结论以对应日期为准。
- 当前代码行为和未完成项以“虎牙 Cookie 路线状态”为准。
- Cookie、UID、订单号和设备标识进入文档时使用脱敏值;真实数据只保存在本地 evidence 目录。
- 兑换、下单和支付属于写操作,除非明确确认,不纳入自动回归测试。