Commit Graph
653 Commits
Author SHA1 Message Date
yml2213 5d6325d74c feat(weibo): 增加客服默认操作权限 2026-11-08 15:02:03 +08:00
yml2213 a927be36f2 feat(weibo): 优化外部单协作建单界面 2026-11-08 14:53:27 +08:00
yml2213 0285fc80bb merge: 合并微博自动化与外部 CK 协作功能 2026-11-08 14:21:02 +08:00
yml2213 66b4f72994 feat(weibo): 增加外部 CK 单行复制 2026-11-08 14:13:01 +08:00
yml2213 5b42577b0b feat(huya): 合并外部单协作 CK 权限 2026-11-08 14:06:31 +08:00
yml2213 7f7a8f6004 fix(weibo): 识别支付域登录失效 2026-11-08 14:06:26 +08:00
yml2213 ed15701392 feat(weibo): 修正绑定小程序码并增加账号批量操作 2026-11-08 13:17:29 +08:00
yml2213 79cfd4a634 feat(weibo): 增加外部单协作台账 2026-11-08 11:41:54 +08:00
yml2213 a0afa430ec feat(weibo): 增加外部 CK 账号 CRUD 与生命周期 2026-11-08 11:07:23 +08:00
yml2213 dd3508d614 fix(weibo): 将支付风控检测并入账号 CK 校验 2026-11-08 10:29:33 +08:00
yml2213 ffbe0f41f5 fix(weibo): 识别支付页拒绝并保护有效 CK 状态 2026-11-08 10:04:05 +08:00
yml2213 b7f34df04d feat(weibo): 增加微博微豆基础自动化 2026-11-07 20:33:15 +08:00
yml2213 16196332f2 feat(huya): 合并协作单礼包字典与名称编辑 2026-11-07 16:56:49 +08:00
yml2213 efa8bf2a46 feat(huya): 增加协作单礼包字典与名称编辑 2026-11-07 16:54:01 +08:00
yml2213 afcbff2207 feat(douyu): 支持管理员取消作废协作单 2026-11-06 15:42:19 +08:00
yml2213 973042288f feat(douyu): 增加协作单礼包字典与权限控制 2026-11-06 15:09:50 +08:00
yml2213 578e259eea fix(douyu): 加固高价值三态迁移与状态口径
修复迁移中断重跑、旧快照回填覆盖、降级将 unknown 误写成可兑换,以及迁移前 CK 已失效账号未作废旧结论的问题。统一 CK error 的展示与筛选口径,补齐旧快照迁移和兑换兜底反向用例,并同步高价值结论时间语义。同时纳入 .gitignore 更新。
2026-11-06 13:25:45 +08:00
yml2213 c9fbbdb828 feat(douyu): 支持账号批量撤回并刷新未分配状态
新增按勾选或标签批量撤回账号归属,撤回只处理确实已分配的账号。账号管理和分配管理增加可见时自动刷新、窗口聚焦刷新及手动刷新,解决批量登录完成后未分配账号延迟出现。
2026-11-06 13:25:32 +08:00
yml2213 4c1aff47da feat(douyu): 高价值套装改用官方 storehome 三态判定
高价值套装的准入判定改为只认官方精英宝典 storehome 里账号级的
status:0=可兑换、1=已达兑换上限,商品缺失/接口异常=unknown。
兑换记录和积分记录只作历史展示,不参与是否拥有的判定。

原来的 high_value_owned(JSON 名单)无法区分「确认可兑换」和
「官方接口没返回商品」,也无法表达部分失败。改为两套独立状态 +
检查时间(迁移 20261106_0065),旧快照保守回填:status 缺失的
一律 unknown,不猜。

CK 判定失效时在数据层作废结论(降为 unknown),不是展示层降级。
官方 status 是账号维度的,但 CK 失效那段时间账号可能被别人手工
登录并兑换(这些号共享给客服),缓存里的「可兑换」就不成立了;
只在展示层降级的话,CK 恢复后那条陈旧的「可换」会重新变绿。
error(查不到)不作废 —— 查不到不等于账号出问题了。

高价值结论有自己的时钟:资料刷新除了看 overview_queried_at,还看
high_value_checked_at。两者会脱钩(商品接口单独失败时资料时间被刷新、
高价值时间停在原地),少了这一条这类账号会永久停在旧结论。作废的
结论按 6 小时慢速重试,但「从来没查到过」不因此重选 —— 那是接口对
该账号稳定失败,每轮都重选只会反复撞墙。

商城商品列表改用精英宝典的 manualID 拉取,不再寄生在电竞手册分支里
(否则没配电竞手册的配置就永远拉不到商城,三态全部停在待确认)。

筛选拆成三类「查不到」:unqueried(未查资料,旧口径不变)、
high_value_never(从未读到商城)、high_value_unknown(查过但结论
未知/过期)。之前第二类无处可寻 —— 它既不满足 unqueried 也不满足
high_value_unknown。
2026-11-06 12:25:08 +08:00
yml2213 e7e187cf57 docs: 精简项目文档并清理 Ruff 问题 2026-11-06 11:09:53 +08:00
yml2213 03bc0818dd feat(huya): 分身 CK 支持 cred0 解密补全,WSS 帧改为 JCE WebSocketCommand
- scripts/huya_clone_ck.py: root 读取小X分身/真身 WebView Cookie,默认
  用 AES-128-ECB(UDB 主密钥前 16B) 解 cred0 注入 udb_cred,新增
  --anon-device 补匿名设备字段、--no-cred0 退回旧行为
- core/huya/wss_client.py: 帧层改用浏览器 HUYA.WebSocketCommand(JCE)
  结构,vData 直接放 Wup 原包,按 WUP iRequestId 匹配响应,初始化顺序
  对齐 RegisterGroup→wsLaunch→VerifyCookie→getConfig→UpdateUserExps
- tests: 帧级断言改为新结构,假 WS 按 requestId 兑现
- docs: 新增分身 CK 提取、HAR 提取 CK 与积分中心说明

实测:四个分身 cred0 解出 udb_cred(39/43 字段),WSS
PlayMallUI.queryAllocation 返回 code=200、18 个商品;tests -k huya 394 passed
2026-10-26 11:23:29 +08:00
yml2213 6fc453017c feat(auth): 后台登录改为滑动会话
- JWT 记录 iat,exp=min(now+24h, iat+7d)
- 已认证请求自动续签 httpOnly Cookie
- 新增 ACCESS_TOKEN_IDLE_HOURS / ACCESS_TOKEN_MAX_HOURS
2026-10-25 14:07:44 +08:00
yml2213 935be7a613 fix(douyu): 批量改状态强制回退确认并清理勾选 2026-10-24 09:59:31 +08:00
yml2213 9c31de1e73 fix(douyu): 切换状态标签/筛选时清空勾选 2026-10-23 12:34:23 +08:00
yml2213 2de5d374df feat(douyu): 拆分鱼翅积分与兑换记录查询 2026-10-23 10:42:42 +08:00
yml2213 2c87deed78 feat(douyu): 外部单协作 CK 复制统一账号密码格式 2026-10-23 10:32:29 +08:00
yml2213 84d7c8e0a4 feat(douyu): 精英宝典工作台支持 CK 检测与失效重登 2026-10-23 10:21:15 +08:00
yml2213 d81f0524a8 fix(hooks): pre-push 自动启动测试 MySQL 2026-10-23 10:21:15 +08:00
yml2213 331208742e build(deploy): 优化 uv 安装与部署并发保护 2026-10-23 09:59:32 +08:00
yml2213 f074b75871 feat(douyu): 支持批量导出用户名 2026-10-23 09:52:47 +08:00
yml2213 bf2f120fdc feat(douyu): 外部单协作支持复制 CK 2026-10-23 09:29:53 +08:00
yml2213 96c4f41674 fix(assignments): 未分配列表不再混入 CK 失效账号
分配池统一为:持 CK、CK 未判失效、未被停用/归档。新增 assignable_only 参数贯穿账号列表、批量分配与分配概览;前端列表与一键全部分配使用同一口径。
2026-10-22 11:01:55 +08:00
yml2213 3761267015 feat(ui): 重做登录页并替换默认站点图标
- 登录页改为左侧品牌区 + 右侧表单卡,补字段标签、三步流程与 DCAuth 等待面板
- 新增自定义站点图标(SVG / ICO / apple-touch-icon / 192 / 512)
- index.html 补齐图标、theme-color 与页面描述
- 修复 client.ts 中既有的 any 类型告警
2026-10-21 22:04:44 +08:00
yml2213 2f5a63ae27 feat(auth): 新增手机号与 DCAuth 设备认证登录
- 登录链路改为用户名 + 密码 + 短信验证码 + DCAuth v2 设备签名
- 新增 login_sms_codes / user_devices / device_challenges 三张表,迁移 0063/0064
- 设备绑定只比对 deviceId + publicKey,每账号一个 active 设备,管理员可重置
- 保留未绑定手机号账号的密码登录兜底,绑定后强制安全登录
- 登录页与用户管理页支持验证码、DCAuth 轮询、手机号绑定与设备重置
2026-10-21 22:00:03 +08:00
yml2213 f21362dfe3 fix: 斗鱼协作台账展示主页截图 2026-10-20 20:30:19 +08:00
yml2213 71574908ff feat: 斗鱼外部单协作台账与店铺实时同步 2026-10-20 20:11:35 +08:00
yml2213 c778ae9a09 feat: 账号管理支持按账号名批量选号打标签,并支持复制账号名 2026-10-20 17:31:39 +08:00
yml2213 c299f63537 fix: 充值核账按绑定账号和角色整组 2026-10-19 17:22:51 +08:00
yml2213 3a6649a054 feat: 重做协作台账状态机并支持充值核账 2026-10-19 16:06:02 +08:00
yml2213 781b27e63a feat: 协作台账支持归档并精简状态列 2026-10-19 13:04:27 +08:00
yml2213 375567cbd2 feat: 拆分协作台账充值/脚本统计并支持暂停实时同步 2026-10-19 12:27:05 +08:00
yml2213 52043adbc1 fix: 协作单礼包名分行显示,保留类目前缀 2026-10-18 11:24:28 +08:00
yml2213 26066858b6 docs: 记一个部署坑 —— 重建镜像后 up -d 不一定换容器
2026-10-18 部署礼包修复时实际踩到:`docker compose build` 出了新镜像
(ID 变了),`docker compose up -d douyu-login` 只打了句 Started,
容器仍是上一版(ps 显示 Up 11 hours,容器里搜不到新函数),差点把
「没生效」报成「部署成功」。

- AGENTS 坑 #10:重建过镜像就 `up -d --force-recreate <服务名>`
  (必须带服务名,不带会把 mysql 一起重建),部署后核对镜像 ID 或 grep 容器内新代码。
- 部署清单同步改命令(顺带给 `docker compose run` 补上 -T 与 </dev/null,
  同 AGENTS 坑 #5)。
2026-10-18 11:02:09 +08:00
yml2213 21f7ee3f3f feat(huya): 礼包名默认空白,改用「常用礼包」备选按钮
新建协作单以前会把「上次选的礼包」自动填进礼包名(localStorage
huya.collab.lastGift)。连开几单同一个礼包是省事,但每开一单都顶着上一次的
选择,稍不留神就按错礼包建单;而且这个自动值会被草稿自动保存吃进去,
下次打开又「恢复」出来。

- 新建弹窗**不再预填礼包名**:删掉 lastGift 的读写,字段默认空白。
- 草稿恢复只带订单号 / 店铺 / CK / 截图 / 备注,礼包名留空;
  hasDraftContent() 也不再认「只有礼包名」的草稿(否则被旧逻辑自动填过的
  那份草稿会一直弹「已恢复上次未提交的草稿」)。
- 新增 GET /external-orders/gifts/frequent:按台账里的使用次数排序
  (次数相同看最近一次使用),新建与补资料弹窗在字段上方渲染最多 6 个按钮,
  只显示**当前礼包缓存里还有的**(活动换 SID 后老礼包会整批下架)。
- 新增 5 例测试,并做了 3 次反向验证(去掉次数排序 / 改成升序 / 去掉空名过滤)。

补资料弹窗的初值仍是「这一单自己的礼包」,详情抽屉编辑也不动 —— 那不是
「上次选的」。
2026-10-18 10:53:04 +08:00
yml2213 c441b6c663 feat(huya): 批量查询拆成「查积分」与「查兑换记录」两个按钮
前端工具栏原来一个按钮同时查两件事,拆开后每次只查一半,所以重点在
「没查的那一半不能被当成没查到」:

- 接口加 scope(both / score / records),默认 both 保持原行为;
  只查积分时不产生判定(空串「未判定」,与 unknown「无法判定」分开),
  也**不会**自动改业务状态(连判定都没有,凭什么改)。
- 列表的积分与判定各取「最近一条查到过它的」快照:点「查积分」不再把
  整页判定徽标冲成未判定,点「查兑换记录」也不再清空积分;但新的
  unknown 仍会盖掉旧的 success(抖动结果不许藏)。
- 结果弹窗 / 积分列 Tooltip / 生命周期时间线都按 scope 显示,
  不再把「本次没查」显示成「积分 -」「兑换记录 0 条」。
- 新增 12 例测试(TestCollabActivityScopeSplit),并做了 4 次反向验证
  (去掉判定分支 / 判定跟随最新 / 积分跟随最新 / 删掉响应字段),全部确认变红。

顺带修掉文档漂移:AGENTS.md 的迁移 head 早就过期(main 实际
20261016_0059、dev 20261008_0053),并补上「两侧已分叉成两个 head、
合并 dev 前必须先 alembic merge」这条;设计文档补 §11.9。
2026-10-17 23:32:51 +08:00
yml2213 b47dde47e9 build: 缓存 npm/pip/uv/apt 依赖 2026-10-17 21:08:52 +08:00
yml2213 f06869c4b1 feat(huya): 协作台账补资料与管理员复制 CK 2026-10-17 20:47:31 +08:00
yml2213 8fac4a1d04 fix(huya): 一键查询统一最新 CK 探针与 HTTP 快速通道 2026-10-17 16:45:32 +08:00
yml2213 ef6663beae fix(huya): 查询积分先验 CK 并改用 HTTP 快速通道 2026-10-17 16:22:54 +08:00
yml2213 2620023db4 fix(huya): 查询角色复用协作台账 CK 探针并标记失效 2026-10-17 16:18:28 +08:00