yml2213
|
a0db26def3
|
feat(login): 任务列表支持分页、跨页全选与一键清空
任务量早就过了单页能装下的规模(库里 1.4 万条,单批就 177 条),但接口
硬编码 limit(200)、前端 pagination={false},于是「全选」其实只能选到前
200 条,失败任务清不干净。
- 接口加 page/page_size/status:不传 page 时仍返回裸数组(Cookie 页等
老调用方依赖这个契约,不能改);传了才返回 {items,total},total 供跨页全选。
- 删除支持 all_matching:按当前筛选条件删全部,不必先翻完所有页去勾。
- 前端:分页控件(20/50/100/200/500,记住选择)、状态筛选、表头
「选择全部 N 条(含其他页)」、「清空失败」一键操作。
两条护栏:
- **pending/running 一律不删** —— 删掉会让批次线程找不到记录;要停批次
走 /stop/{batch_id}。
- 不给任何条件就拒绝删除,绝不默认全删。
顺带:带 join 的 query 不能 bulk delete(SQLAlchemy 会拒绝),改成先查
id 再按主键删。
|
2026-10-03 10:37:52 +08:00 |
|
yml2213
|
22aa485536
|
fix(web): 审核回归 — 5 项修复 (渠道写入丢失/斗鱼WS生命周期/归属校验/恢复订阅/画像key稳定)
B1 routers/huya.py: 批量 Web 登录 login_channel/status 回填在 helper 内部 commit
之后赋值且未再提交 → 丢失; 补 db.commit() 并统一 status=active
B2 routers/login.py + services/login_service.py: 斗鱼登录 WS 断线即 pop 批次,
刷新后无法重连订阅 → 对齐虎牙模式 (BatchRegistry.mark_finished, 仅结束后清理)
B3 routers/login.py: WS 增加批次归属校验 (非 view_all 仅可订阅自建批次)
S1 LoginTasksPage: effectiveBatchId 从任务列表推导活跃批次, 刷新后停止按钮/
日志订阅自动恢复
S4 services/huya_service.py: username 仅在为空时回填, 防止 udb_passport 覆盖
登录名导致一号一设备绑定 key 漂移
验证: 77 后端单测 OK; tsc + vite build OK
|
2026-08-29 18:20:27 +08:00 |
|
yml2213
|
335f5cf57b
|
优化首页统计和任务请求
|
2026-08-05 10:41:40 +08:00 |
|
yml2213
|
2fda47c631
|
优化任务列表性能和本地登录代理
|
2026-08-05 10:03:18 +08:00 |
|
yml2213
|
f91c05c108
|
优化列表分页和数据加载
|
2026-07-24 13:25:27 +08:00 |
|
yml2213
|
6840728da6
|
修复 antd 弃用警告
|
2026-07-24 12:48:02 +08:00 |
|
yml2213
|
cd2d02c86e
|
增加斗鱼账号检测功能
|
2026-07-09 23:12:39 +08:00 |
|
yml2213
|
d7d7c0cbb0
|
增加另一个登录接口
|
2026-06-26 17:22:51 +08:00 |
|
yml2213
|
4681136484
|
优化登录弹窗
|
2026-06-25 08:54:54 +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
|
0d03b2c242
|
优化登录重试与配置清理
|
2026-06-24 10:20:33 +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
|
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 |
|
 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
|
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
|
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 |
|
yml2213
|
627f06d0a0
|
优化 ui
|
2026-06-22 14:21:39 +08:00 |
|
yml2213
|
347edb8103
|
初步增加 web 界面
|
2026-06-22 13:11:15 +08:00 |
|