Commit Graph
62 Commits
Author SHA1 Message Date
yml2213 8de269f958 增加兑换 2026-07-28 18:12:11 +08:00
yml2213 624198bca4 优化电竞手册换绑时间展示 2026-07-28 17:27:35 +08:00
yml2213 d7a8666fe4 新增电竞手册独立绑定流程 2026-07-28 17:12:08 +08:00
yml2213 63962811f8 优化斗鱼任务操作体验 2026-07-25 11:58:30 +08:00
yml2213 6ca7898520 优化斗鱼支付后自动刷新 2026-07-25 11:46:11 +08:00
yml2213 3350b56f5c 优化任务操作台交互体验 2026-07-25 11:21:53 +08:00
yml2213 df4297bee5 完善客服操作台权限与绑定二维码 2026-07-25 09:45:49 +08:00
yml2213 9471a5b4ff 修复斗鱼绑定主链路:双 actAlias 分工与任务驱动扫码确认
扫码/确认走活动 alias,角色与换绑最新态优先查 cjm;生成二维码前强制校验换绑冷却,前端以任务结果为单一数据源展示二维码、待确认角色与换绑时间。
2026-07-24 22:36:25 +08:00
yml2213 62099e8d68 新增斗鱼活动任务模块:绑定、宝典、鱼翅、积分、兑换等功能
- 新增 activity_client.py:封装斗鱼活动/兑换/充值/送礼接口
- 新增 cookie_utils.py:Cookie 解析与规范化工具
- 新增 douyu_service/douyu_runner:斗鱼任务服务层与批量执行器
- 新增 douyu 路由:任务类型查询、账号列表、配置管理、商品管理、批量任务、WebSocket 日志
- 新增 models/schemas:DouyuTask/DouyuConfig/DouyuGoodsSnapshot 模型,Account 扩展点数/鱼翅/绑定状态等字段
- 新增数据库迁移:斗鱼活动相关表与 accounts 字段补充
- 新增前端 DouyuTasksPage 任务操作台页面
- 兑换商品请求添加 sec-ch-ua 反检测头
- 兑换商品支持最多 8 次重试 + csrf_token 自动刷新
- 注册 douyu:task / douyu:config 权限点
- 侧边栏新增斗鱼分组与任务操作台菜单入口
2026-07-24 16:11:39 +08:00
yml2213 a13dde57dd 恢复虎牙绑定二维码自动识别角色
生成二维码后后端轮询扫码与角色同步,扫码完成无需再手动点查询角色。
用 bind_polling 区分真实轮询与僵尸 running,避免再次锁死任务台。
2026-07-24 12:01:11 +08:00
yml2213 9ec4bba0a9 修复虎牙任务台卡死与轮询过重,并调整默认端口
默认端口改为后端 8800 / 前端 5174,避免多项目冲突。
清理无执行器的残留 running 任务,支持停止无效批次;绑定二维码结果页不再被假活跃批次锁死。
任务列表默认剥离 base64 小程序码,按需拉取详情,空闲轮询降频,显著降低 tasks 请求体积。
2026-07-24 11:38:07 +08:00
yml2213 69b6120ede 修复虎牙绑定角色识别 2026-07-22 16:59:12 +08:00
yml2213 851d8c122b 修复虎牙注册续跑逻辑:默认从停止处继续,不重试已失败项
「继续未完成」只跑 pending/stopped;另提供「重试失败」可选重跑 error。避免大批量中途停止后把失败号全部再跑一遍。
2026-07-12 20:08:03 +08:00
yml2213 e18b2c6e0c 虎牙自动注册持久化成功流水与批次,支持失败续跑与随时导出
将注册批次/条目/成功记录落库,成功一个写入一条流水;服务中断可恢复并续跑失败项,换电脑也能导出 txt。同时修复 pending 被误判为运行中导致页面卡住的问题。
2026-07-12 20:05:04 +08:00
yml2213 baec2ab0fb 增加代理展示 2026-07-10 00:21:07 +08:00
yml2213 cd2d02c86e 增加斗鱼账号检测功能 2026-07-09 23:12:39 +08:00
yml2213 f9a321512f 优化虎牙任务操作台 2026-07-06 13:50:20 +08:00
yml2213 45dd7e5a74 兼容虎牙四段账号格式
支持虎牙号、密码、手机号、验证码链接导入,并补充美国等国际手机号格式处理。
2026-07-06 11:45:42 +08:00
yml2213 72e7947a39 完善自动注册代理和状态恢复 2026-07-06 02:58:17 +08:00
yml2213 db4ca78280 完善虎牙自动注册改密 2026-07-06 01:20:22 +08:00
yml2213 af98ea8416 添加虎牙自动注册 2026-07-06 00:31:34 +08:00
yml2213 2203420146 虎牙支持先导入账号密码再登录 2026-07-05 20:47:16 +08:00
yml2213 552eb9fa82 自动关闭虎牙支付成功弹窗 2026-07-05 13:25:55 +08:00
yml2213 984096f758 完善虎牙账号管理并规范Cookie 2026-07-05 13:13:38 +08:00
yml2213 2824c5a54c 实现虎牙密码登录 2026-07-05 11:12:36 +08:00
yml2213 5534293ed1 实现虎牙商品兑换并优化列表展示 2026-07-05 10:46:00 +08:00
yml2213 d5ecfb1c89 实现虎牙查询兑换记录 2026-07-05 00:15:10 +08:00
yml2213 5513b5a313 实现虎牙充值商品列表与支付二维码 2026-07-04 23:48:53 +08:00
yml2213 fa0d49ff8c 实现虎牙刷新商品列表 2026-07-04 22:21:35 +08:00
yml2213 e855d7e449 完善虎牙确认绑定与角色查询 2026-07-04 21:06:33 +08:00
yml2213 7e92008f7b 实现虎牙绑定小程序码展示 2026-07-04 19:05:35 +08:00
yml2213 5b84f82a2e 优化虎牙默认配置 2026-07-04 18:10:03 +08:00
yml2213 3b88653e5d 完善虎牙积分查询日志 2026-07-04 17:57:33 +08:00
yml2213 56ffaf531c 实现虎牙积分查询执行器 2026-07-04 17:07:29 +08:00
yml2213 e1d47a85be 新增虎牙账号和任务基础功能 2026-07-04 16:31:12 +08:00
yml2213 d7d7c0cbb0 增加另一个登录接口 2026-06-26 17:22:51 +08:00
yml2213 0b4fe1daa2 继续优化登录逻辑 2026-06-25 08:40:00 +08:00
yml2213 a62e7c192f 优化白名单逻辑 2026-06-25 08:19:18 +08:00
yml2213 9b66a4fcd9 登录任务最大重试次数改为 20 次 2026-06-25 07:18:10 +08:00
yml2213 b9481d49ee 修复登录任务无限重试导致文件描述符耗尽问题
1. docker-compose.yml:增加文件描述符限制 ulimits (65536)
2. login_service.py:限制最大重试次数为 10 次,避免无限重试
3. 解决 [Errno 24] Too many open files 错误
2026-06-25 06:58:18 +08:00
yml2213 e478ac4d09 简化登录流程:砍掉代理池,极验不内部切代理
- 新建 ProxyFetcher 替代 ProxyManager,每次从API取1个代理,无池无锁无冷却
- 极验最多3次尝试,失败直接抛异常回到login整体重试取新代理
- 删掉极验内部的 refresh_proxy/proxy_switches/_soft_fail_streak 逻辑
- login整体重试时取新代理从头走完整流程
- 代理验证超时从(5,8)缩短为(3,5),白名单同步后立即重试不等待
- login_service 删掉60行代理池预检/等待代码
- 修复邮件验证码日期比较:Roundcube分钟精度与秒级时间戳对齐
2026-06-24 15:37:48 +08:00
yml2213 83345dfdc5 增加了代理平台和日志 2026-06-24 14:22:29 +08:00
yml2213 0d03b2c242 优化登录重试与配置清理 2026-06-24 10:20:33 +08:00
yml2213 7bb50a9bbf 增强登录稳定性 2026-06-24 09:17:15 +08:00
yml2213 177ec42416 加密敏感数据并优化补CK流程 2026-06-24 09:10:31 +08:00
yml2213 4813eb039d feat: 极验验证默认无限重试,由登录整体超时兜底
- max_proxy_retries 默认值从10改为0(无限重试)
- _solve_geetest 增加 deadline 参数,超时则主动退出
- login() 计算 deadline 并传递给极验验证
- 前端/Schema/Service 默认值同步更新
2026-06-23 23:40:40 +08:00
yml2213 cc30697c97 feat: 登录流程整体重试机制 + 代理池耗尽等待恢复
- DouyuLogin.login() 添加整体重试循环,失败时换新代理从头重跑
  - 新增 max_login_retries(默认3次)和 max_total_time(默认300秒)
  - 重试前重置 session cookies + 换新代理,避免残留状态
  - 成功后归还代理到池;失败时标记代理坏
- 代理池耗尽时不再立即放弃账号,等待最多60秒恢复后再试
- API代理模式改为 DouyuLogin 内部通过 proxy_manager 自治管理
  登录过程中的代理切换(极验、整体重试)不再由服务层预取
- Schema/LoginBatchRequest 添加 max_login_retries 和 max_total_time
- 前端 API 调用改为对象参数形式,透传新参数
2026-06-23 22:06:00 +08:00
yml2213 dd56de9bd4 fix: 修复proxy_service和account_service中不当的顶层import
- proxy_service.py: 将requests和WhitelistManager改为函数内延迟import,
  避免启动时加载不需要的依赖;移除未使用的get_exit_ip_via_proxy导入
- account_service.py: 移除未使用的func、joinedload、AuditLog、
  user_has_permission顶层导入
2026-06-23 08:35:29 +08:00
yml2213 2ab6724543 refactor: 补全services层+消除core/models.py冗余+修复network.py缩进错误
高优先级问题1 - Router层业务逻辑泄漏:
- 新建 services/proxy_service.py: 从routers/proxy.py提取ProxyService类,
  封装代理/白名单测试逻辑、全局状态管理、所有core/ import
- 新建 services/account_service.py: 从routers/accounts.py提取
  split_account_line、cookie_account_ids_query、parse_and_build_accounts,
  封装core.douyu.email_verifier的import
- 重写routers/proxy.py为薄HTTP/WS层,移除所有core/直接依赖
- 精简routers/accounts.py,从account_service导入业务函数
- 将_active_batches全局状态移入login_service.py的BatchRegistry类
- routers/login.py改为使用batch_registry单例

高优先级问题2 - 两套models.py冗余:
- 删除core/models.py(Account dataclass + ProxyConfig死代码)
- 在core/douyu/login.py新增AccountLike Protocol替代Account dataclass
- login_service.py中Account(...)构造改为SimpleNamespace(...)
- 清理core/__init__.py导出

附带修复:
- core/geetest/common/network.py的get_picture()函数缩进错误
  (缺少if match:块和data赋值语句)
2026-06-23 07:34:17 +08:00
yml2213 453a637480 refactor: 修复9项中等架构问题
安全修复:
- WebSocket 端点添加认证(cookie/token),防止未授权窃听日志
- SPA serve_spa 添加路径遍历防护(resolve + relative_to 检查)
- Token 改用 httpOnly Cookie 存储,移除前端 localStorage token(防 XSS 窃取)
- 添加安全响应头中间件(X-Content-Type-Options/X-Frame-Options/Referrer-Policy)
- HTTP 请求日志脱敏请求体中的 password/secret/token 等敏感字段
- 权限检查统一使用 user_has_permission(考虑自定义权限,修复 has_permission 忽略 custom_permissions 的缺陷)

性能与稳定性:
- cookies.py 列表接口修复 N+1 查询(改为批量查询 Account)
- login_service.py run() 结束时关闭 DB Session(防止连接泄漏)
- _active_batches/_active_tests 全局字典添加 threading.Lock(防止并发竞态)

配置优化:
- CORS 源支持环境变量 CORS_ORIGINS 配置
- Uvicorn reload 支持环境变量 UVICORN_RELOAD 控制(生产环境默认关闭)
- Cookie 安全标志支持环境变量 COOKIE_SECURE 配置(HTTPS 部署时启用)
- logs.py 权限不足返回 HTTP 403(原来返回 200 + message)
2026-06-23 06:51:01 +08:00