Commit Graph
177 Commits
Author SHA1 Message Date
yml2213 984096f758 完善虎牙账号管理并规范Cookie 2026-07-05 13:13:38 +08:00
yml2213 8f48b96fdc 优化双平台后台界面 2026-07-05 12:25:18 +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 728706deb2 前端路由改为懒加载 2026-07-04 18:10:30 +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 e94b37c602 增加了版本号系统 2026-06-25 09:38:54 +08:00
yml2213 f21f82cbed ck 复制格式优化,修复错误 2026-06-25 09:16:23 +08:00
yml2213 4681136484 优化登录弹窗 2026-06-25 08:54:54 +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 a4b04e7733 修复 TypeScript 编译错误:删除未使用的 canViewAll 变量 2026-06-24 22:17:53 +08:00
yml2213 50f90eeeb8 实现账号信息隐藏权限系统
1. 拆分 account:view_all 和 account:view_full 权限
2. 运营只能看用户名、标签、分配,隐藏密码/邮箱等敏感信息
3. 管理员可看完整字段(需 account:view_full 权限)
4. 所有人都可分配账号给客服
5. 前端添加上传时间列
2026-06-24 22:15:46 +08:00
yml2213 09f9ab7165 用户管理和分配管理:分页按钮优化,支持切换每页条数并持久化 2026-06-24 20:24:04 +08:00
yml2213 4a38b06192 账号管理:分页按钮优化,支持切换每页条数并持久化 2026-06-24 20:21:30 +08:00
yml2213 492360b097 Cookie 导出自定义格式:换行符改为 Windows 格式(CRLF) 2026-06-24 18:46:58 +08:00
yml2213 c0d4dceb17 登录按钮防重复点击:添加 WebSocket 错误回调重置 starting 状态 2026-06-24 16:58:30 +08:00
yml2213 f61794592f 登录按钮防重复点击:任务运行期间禁用开始登录和重试按钮 2026-06-24 16:38:28 +08:00
yml2213 a7ebfc9678 登录任务:开始登录按钮在任务运行中禁用,防止重复点击 2026-06-24 16:33:02 +08:00
yml2213 a697e8735a 修复启动卡住:加密迁移解密失败时跳过而非崩溃
未设置 APP_ENCRYPTION_KEY 时使用临时密钥,重启后密钥变更导致旧密文解密失败。
改为跳过无法解密的值并记录警告,不再阻塞启动。
2026-06-24 16:00:07 +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 d87aa7c1e6 移除HTTP详情请求日志 2026-06-24 09:29:47 +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 4a07905edf fix: Cookie批量删除路由顺序修正(/batch必须在/{task_id}前)+ Statistic valueStyle改为styles.content 2026-06-23 22:37:26 +08:00
yml2213 527c0c8ff8 feat: Cookie管理页面增加批量删除功能 2026-06-23 22:31:51 +08:00
yml2213 57c0d4af6e fix: Cookie管理页面分页选择无法保存,pageSize改为state管理+localStorage持久化 2026-06-23 22:16:11 +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 0a68632c8a fix: 远程http访问时复制Cookie失败,添加execCommand fallback兼容非安全上下文 2026-06-23 21:12:37 +08:00
yml2213 02b92a9af5 fix: 启动时初始化loguru写文件,控制台日志不再丢失
- 调用setup_logger将日志同时输出到logs/app.log
- 默认DEBUG级别,可通过LOG_LEVEL环境变量覆盖
- 10MB轮转、7天保留、UTF-8编码
- 之前只有http_detail.jsonl(http_logger自己写的),loguru日志全在控制台看完就没了
2026-06-23 10:02:01 +08:00
yml2213 74251c48c7 fix: 日志等级选择器不再误触发折叠展开
- 折叠onClick从整个标题栏div移到标题文字span上
- 移除不再需要的stopPropagation
2026-06-23 09:50:08 +08:00
yml2213 65683350ea feat: 实时日志面板增加日志等级选择器
- 4级过滤:错误/警告+/成功+/全部
- inline模式和card模式均支持
- 点击Select时不触发折叠事件(stopPropagation)
- 条数统计仍显示全部日志数(不过滤)
2026-06-23 09:45:59 +08:00
yml2213 3a065dfd98 优化启动脚本 2026-06-23 09:06:06 +08:00
yml2213 98728bee87 fix: 修复前端7处eslint错误和6处警告
- AccountsPage/CookiePage/UsersPage/LoginTasksPage/ProxyPage:
  将数据加载函数改为useCallback包裹,补全useEffect依赖项
- LoginTasksPage: loadAccounts和loadTasks改为useCallback
- MainLayout: 补全navigate依赖
- eslint.config.js: 关闭react-hooks/set-state-in-effect(对初始
  数据获取场景过严),降级react-refresh/only-export-components为warn
  (Provider/Hook/Type共存文件是合理设计)
2026-06-23 08:42: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