55 Commits

Author SHA1 Message Date
fae21329d7 优化 KDocs 上传器
- 删除死代码 (二分搜索相关方法,减少 ~186 行)
- 优化 sleep 等待时间,减少约 30% 的等待
- 添加缓存过期机制 (5分钟 TTL)
- 优化日志级别,减少调试日志噪音

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:09:46 +08:00
156d3a97b2 fix(kdocs): 修复上传线程卡住和超时问题
1. 禁用无效的二分搜索 - _get_cell_value_fast() 使用的 DOM 选择器在金山文档中不存在
2. 移除 _upload_image_to_cell 中重复的导航调用
3. 为 expect_file_chooser 添加 15 秒超时防止无限阻塞
4. 包含看门狗自动恢复机制(之前已实现)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:02:08 +08:00
10be464265 fix: 修复连接池计数和任务调度器默认值问题
1. db_pool.py - 修复连接计数不一致问题
   - 将 _created_connections 递增移到 put() 成功之后
   - 确保 Full 异常和创建异常时正确关闭连接
   - 避免计数器永久偏高

2. services/tasks.py - 统一 _running_by_user 默认值
   - 将减少计数时的默认值从 1 改为 0
   - 与增加计数时的默认值保持一致
   - 添加注释说明

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:46:40 +08:00
e65485cb1e fix: 修复自动重试的竞态条件问题
问题:delayed_retry_submit 闭包捕获的是旧的 account 对象
- 5秒后检查 should_stop 时,可能检查的是旧对象
- 如果账户被删除/重建,会导致状态检查不可靠
- 可能导致重复任务提交

修复:
- 在 delayed_retry_submit 中重新调用 safe_get_account 获取最新账户对象
- 添加账户不存在的检查
- 添加取消时的日志输出,便于调试

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:32:37 +08:00
42609651bd fix: 修复截图登录检查逻辑的条件判断错误
问题:attempt > 0 应该是 attempt > 1
- attempt 从 range(1, max_retries + 1) 开始,值为 1, 2, 3
- 原条件 attempt > 0 在 attempt=1 时就为 True
- 导致 elif 分支(首次尝试逻辑)成为死代码

修复:
- 将 attempt > 0 改为 attempt > 1
- 更新注释使其更清晰准确

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:16:01 +08:00
zsglpt Optimizer
7e9a772104 🎉 项目优化与Bug修复完整版
 主要优化成果:
- 修复Unicode字符编码问题(Windows跨平台兼容性)
- 安装wkhtmltoimage,截图功能完全修复
- 智能延迟优化(api_browser.py)
- 线程池资源泄漏修复(tasks.py)
- HTML解析缓存机制
- 二分搜索算法优化(kdocs_uploader.py)
- 自适应资源配置(browser_pool_worker.py)

🐛 Bug修复:
- 解决截图失败问题
- 修复管理员密码设置
- 解决应用启动编码错误

📚 新增文档:
- BUG_REPORT.md - 完整bug分析报告
- PERFORMANCE_ANALYSIS_REPORT.md - 性能优化分析
- LINUX_DEPLOYMENT_ANALYSIS.md - Linux部署指南
- SCREENSHOT_FIX_SUCCESS.md - 截图功能修复记录
- INSTALL_WKHTMLTOIMAGE.md - 安装指南
- OPTIMIZATION_FIXES_SUMMARY.md - 优化总结

🚀 功能验证:
- Flask应用正常运行(51233端口)
- 数据库、截图线程池、API预热正常
- 管理员登录:admin/admin123
- 健康检查API:http://127.0.0.1:51233/health

💡 技术改进:
- 智能延迟算法(自适应调整)
- LRU缓存策略
- 线程池资源管理优化
- 二分搜索算法(O(log n) vs O(n))
- 自适应资源管理

🎯 项目现在稳定运行,可部署到Linux环境
2026-01-16 17:39:55 +08:00
f8bbe3da0d fix: 修复应读参数,bz=2 改为 bz=0(适配网站更新)
网站参数变更:
- bz=0: 应读
- bz=1: 已读
- bz=2: 已读(旧参数,已废弃)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 12:43:25 +08:00
1b85f34a0f fix: 恢复截图顺序,保持完整框架样式
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 12:38:52 +08:00
f04c5c1c8f fix: 适配网站结构更新
1. 标记已读改用预览通道 (download2.ashx)
2. 截图优先直接访问目标页面,避免 iframe 加载问题

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 12:31:22 +08:00
Yu Yon
b1484e9c03 fix: 修复多任务上传状态显示问题
1. 后端: 上传完成后恢复为"未开始"状态,不再保持"等待上传"
2. 前端: 调整状态颜色
   - 上传截图(上传中): 红色
   - 等待上传: 黄色
   - 已完成: 绿色
2026-01-09 09:21:30 +08:00
Yu Yon
7f5e9d5244 feat: 多任务上传时显示等待上传状态
- 任务入队时设置状态为"等待上传"
- 实际上传时更新为"上传截图"
- 用户可以更直观地看到多任务上传进度
2026-01-09 09:09:00 +08:00
b0fe325154 feat: KDocs 上传增强 + 离线监控 + Bug修复
KDocs 上传功能增强:
- 搜索优化:只用姓名搜索 + C列验证,避免匹配到错误单元格
- 有效行范围:支持配置起始行/结束行,限制上传区域
- 图片覆盖:支持覆盖单元格已有图片(Escape + Delete)
- 配置持久化:kdocs_row_start/row_end 保存到数据库(v18迁移)

二次登录功能:
- 登录后立即再次登录,让"上次登录时间"显示为刚刚

KDocs 离线监控:
- 每5分钟检测金山文档登录状态
- 离线时发送邮件通知管理员(每次掉线只通知一次)
- 恢复在线后重置通知状态

Bug 修复:
- 任务日志搜索账号关键词报错500:添加异常处理

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 23:40:46 +08:00
13544867aa Fix clipboard permissions for KDocs 2026-01-07 17:46:28 +08:00
5fd13fa152 Read KDocs cells via clipboard 2026-01-07 17:40:29 +08:00
a36fa3370b Show KDocs upload status 2026-01-07 17:31:50 +08:00
2ec0c7cb58 Speed up KDocs QR retrieval 2026-01-07 17:15:46 +08:00
6bd00021b8 Fix KDocs login detection 2026-01-07 16:53:44 +08:00
f2652af8fb Fix kdocs upload status restore 2026-01-07 15:16:04 +08:00
950af0efda Improve KDocs search matching 2026-01-07 15:03:51 +08:00
45cbdc51b4 Show upload status and log KDocs skips 2026-01-07 14:28:58 +08:00
703a62b6ad Increase KDocs QR timeout 2026-01-07 14:17:01 +08:00
8c150dcb7c Auto poll KDocs login status 2026-01-07 14:04:09 +08:00
ec90404194 Validate and log QR capture 2026-01-07 13:56:16 +08:00
6af8f46129 Log and save KDocs QR screenshot 2026-01-07 13:49:37 +08:00
19f083df7b Auto click KDocs login and confirm 2026-01-07 13:44:15 +08:00
a04cbfa55f Broaden KDocs login click and modal capture 2026-01-07 13:33:26 +08:00
b78bc7935f Trigger KDocs WeChat login flow 2026-01-07 13:26:31 +08:00
d8897f893a Expand KDocs QR detection 2026-01-07 13:21:19 +08:00
95d7cbc825 Improve KDocs QR capture 2026-01-07 13:14:02 +08:00
6b416dc5f1 Force KDocs QR fetch and improve login detection 2026-01-07 13:07:57 +08:00
28e86b1147 Fix kdocs login status detection 2026-01-07 12:57:03 +08:00
1e216ea356 Fix kdocs runtime logger call 2026-01-07 12:49:54 +08:00
3bae759afc Integrate KDocs auto-upload 2026-01-07 12:32:41 +08:00
5137addacc Optimize scheduler status lookups 2026-01-06 15:58:23 +08:00
82acc3470f Ensure menu expanded in screenshots 2025-12-31 21:28:28 +08:00
2e44afde30 Capture full-page wkhtmltoimage shots 2025-12-31 20:50:02 +08:00
28f4e807a9 Fix wkhtmltoimage viewport crop 2025-12-31 20:23:31 +08:00
3b04f04a31 feat: 全屏截图改用管理后台框架 2025-12-31 20:12:39 +08:00
ea1c7e8a00 feat: wkhtmltoimage支持自定义高度 2025-12-31 20:05:39 +08:00
d269a99d3c fix: wkhtmltoimage使用安全cookie 2025-12-31 19:41:34 +08:00
7c3d0a0947 fix: wkhtmltoimage兼容UA参数 2025-12-31 19:13:20 +08:00
41ead4bead replace screenshot pipeline and update admin 2025-12-31 16:50:35 +08:00
1b20478a08 feat: 风险分定时衰减 + 密码提示修复 + 浏览器池API + next回跳
1. 风险分衰减定时任务:
   - services/scheduler.py: 每天 CST 04:00 自动执行 decay_scores()
   - 支持 RISK_SCORE_DECAY_TIME_CST 环境变量覆盖

2. 密码长度提示统一为8位:
   - app-frontend/src/pages/RegisterPage.vue
   - app-frontend/src/layouts/AppLayout.vue
   - admin-frontend/src/pages/SettingsPage.vue
   - templates/register.html

3. 浏览器池统计API:
   - GET /yuyx/api/browser_pool/stats
   - 返回 worker 状态、队列等待数等信息
   - browser_pool_worker.py: 增强 get_stats() 方法

4. 登录后支持 next 参数回跳:
   - app-frontend/src/pages/LoginPage.vue: 检查 ?next= 参数
   - 仅允许站内路径(防止开放重定向)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 18:28:21 +08:00
e3b0c35da6 Harden auth risk controls and admin reauth 2025-12-26 21:07:47 +08:00
f90b0a4f11 Harden auth, CSRF, and email log UX 2025-12-26 19:05:42 +08:00
1d44859857 perf: 优化任务执行速度 (40-70s → ~15s)
问题:容错机制引入了大量叠加的等待时间

优化内容:
- playwright_automation.py:
  - 登录超时 30s → 10s
  - 导航等待 2s → 0.5s
  - navigate_only 等待 1s → 0.3s
  - 首页轮询 8次×3s → networkidle + 2次×0.5s
- services/tasks.py:
  - 删除截图前固定 sleep(2)
- services/screenshots.py:
  - networkidle 超时 30s → 10s
  - selector 超时 20s → 5s

预计性能提升:从 40-70 秒降至约 15 秒

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:19:46 +08:00
433a3cb806 fix: avoid blocking browser init 2025-12-18 09:38:02 +08:00
1b707fdace fix: 浏览内容进度实时显示 2025-12-16 21:19:48 +08:00
2abb9ab494 fix: 账号截图开关持久化与状态推送优化 2025-12-16 18:27:45 +08:00
a8b9f225bd 更新系统页面和更新功能
- 更新 admin-frontend 系统页面和更新 API
- 更新 routes 和 services 中的更新逻辑
- 重新构建前端静态资源
2025-12-15 15:58:12 +08:00