Commit Graph
154 Commits
Author SHA1 Message Date
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 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 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 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 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 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 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 12c31c2e09 refactor: 消除前端52处any类型+删除冗余requirements.txt+调试print改日志
- 删除 requirements.txt,pyproject.toml 为唯一依赖源(含 requests[socks] extra)
- core/geetest 下 5 处 print() 替换为 loguru logger.debug()
- api/modules.ts 新增 13 个响应接口,消除所有 api.xxx<any, any>
- 新建 utils/error.ts 提供 getErrorMessage(e: unknown) 安全取消息
- 11 个页面组件 catch (e: any) 改为 catch (e: unknown)
- useState<any[]>、columns: any[]、render 参数全部类型化
- TypeScript 类型检查零错误通过
2026-06-23 07:14:08 +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
yml2213 db384701a9 fix(security): JWT密钥与默认账号改用环境变量,清理泄露凭据
- JWT_SECRET_KEY 改从环境变量读取,未设置时使用临时随机密钥并告警
- 默认管理员账号密码改用 ADMIN_USERNAME/ADMIN_PASSWORD 环境变量配置
- 移除登录页及启动/部署脚本中的默认密码明文提示
- docker-compose.yml 添加环境变量支持(从 .env 文件读取)
- 新增 .env.example 配置文档,.gitignore 添加 .env 规则
- git rm --cached 清理已追踪的 data/accounts.json 和 data/cookies/敏感文件
2026-06-23 06:42:37 +08:00
yml2213 5a4805814f 修复账号删除报错+添加批量删除功能
- 修复单个删除报错:删除账号前先删除关联的LoginTask(外键约束)
- 新增批量删除接口 DELETE /api/accounts/batch/delete
- 路由顺序:/batch/delete 在 /{account_id} 前注册避免路径冲突
- 前端添加批量删除按钮(带确认弹窗)
- 前端添加 batchDelete API
2026-06-23 01:29:03 +08:00
yml2213 56de33a285 修复前端TypeScript编译错误
- CookiePage: blob类型转换为BlobPart,移除Tag的size属性
- UsersPage: 移除Divider的orientation属性(类型不兼容)
2026-06-23 00:59:02 +08:00
yml2213 da2fedd484 优化代理管理与增加请求日志系统
代理优化(P0+P1):
- 修复极验失败后代理刷新空操作bug(共享ProxyManager+白名单参数)
- 极验请求超时从(3.05,12)调大到(10,30)
- 白名单sync_ip加全局锁防并发限流,保留多个出口IP应对漂移
- 代理池缓存共享:Condition防并发获取+mark_bad移除坏代理
- 适配代理API的JSON响应格式(code/data/白名单错误)
- 简化代理验证只验斗鱼主站,减少日志噪音
- 获取代理前主动同步白名单(解决ow=1模式不报白名单错误的问题)
- 每次重试重新检测出口IP并同步白名单

请求日志系统:
- 新增HttpLogger记录请求/响应详情到JSONL文件
- login.py的_request和proxy.py的verify_proxy_url接入日志
- 新增/api/logs路由查看和清空HTTP详情日志
- 前端新增请求日志页面(筛选/搜索/分页/自动刷新/详情查看)

其他:
- 添加pysocks依赖支持SOCKS5代理
- gitignore添加*.log
2026-06-23 00:50:57 +08:00
yml2213andClaude Fable 5 2b8716cf72 登录任务增加代理切换次数设置
- 后端: LoginBatchRequest 增加 max_proxy_retries 字段,默认10,0=无限
- 核心: DouyuLogin 极验验证循环根据 max_proxy_retries 控制重试
- 前端: 筛选栏增加代理切换次数输入框,Tooltip 提示0=无限切换直到成功

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-22 20:40:30 +08:00
yml2213andClaude Fable 5 1b20317b42 Cookie导出增加格式选择
- 后端: export接口增加 format 参数,支持 csv 和 custom 格式
- custom 格式: 账号----密码----ck,导出为 txt
- 后端: 导出用批量查 Account 替代逐条查询,消除 N+1
- 前端: 导出按钮改为下拉菜单可选格式
- 修复: blob 导出时不再取 .data(拦截器已提取)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-22 20:20:59 +08:00
yml2213andClaude Fable 5 e7edb56107 修复HTTPS环境下WebSocket连接被拦截的问题
- WebSocket URL 根据页面协议自动选择 ws/wss
- 使用 window.location.host 替代硬编码端口,适配内网穿透代理场景

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-22 20:12:46 +08:00
yml2213andClaude Fable 5 4522421293 增加自动亮色/暗色主题切换 + 清理 pyc 文件
- 新建 store/theme.tsx: 亮色/暗色/跟随系统三种模式
- App.tsx: ThemeProvider + ConfigProvider 暗色算法
- MainLayout: 侧边栏主题切换按钮,Sider/Content 随主题变化
- 所有页面硬编码颜色替换为 antd token
- AssignmentsPage: Tag 用预设颜色名适配暗色,未选中背景用 colorBgContainer
- LoginPage: 暗色深色渐变背景
- 从 git 移除所有 __pycache__/*.pyc 文件

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-22 20:09:57 +08:00
yml2213andClaude Fable 5 accb76b9da 修复登录任务页面加载慢的问题
- 后端: list_tasks 用 IN 批量查 Account 替代逐条查询,消除 N+1
- 后端: list_accounts 用 joinedload 预加载 assigned_user,消除懒加载
- 前端: 首次加载 accounts 和 tasks 并行请求

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-22 19:34:13 +08:00
yml2213andClaude Fable 5 72bcd1274c 优化登录任务界面 + 修复时间显示 + 增加删除功能
- 筛选栏改为单行横排,概览精简为一行文字
- 任务列表全宽展示,日志移到底部可折叠
- 页面使用百分比布局,一屏展示无外层滚动
- 登录任务增加单条删除和批量删除功能
- 后端: datetime.utcnow 替换为 datetime.now(timezone.utc)
- 后端: schemas 序列化统一输出带时区 ISO 格式
- 前端: 新增 utils/time.ts 统一时间格式化工具
- 前端: CookiePage/LoginTasksPage 时间列使用 formatTime()

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-22 17:56:48 +08:00
yml2213 8771d91a30 优化权限控制 2026-06-22 17:07:29 +08:00
yml2213 480dfa6085 Cookie 管理优化 2026-06-22 16:36:23 +08:00
yml2213 48b6a1623b 优化分配功能 2026-06-22 16:23:34 +08:00
yml2213 f94b323ad8 优化代理和重试逻辑 2026-06-22 15:54:45 +08:00
yml2213 9fba12aad0 增加重试 2026-06-22 15:45:48 +08:00
yml2213 9af92fc2a9 增加了账号管理的分组功能 2026-06-22 15:09:51 +08:00