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 |
|
|
|
606cad43dc
|
fix: 修复无附件文章无法标记已读的问题
- 发现标记已读的正确 API: /tools/submit_ajax.ashx?action=saveread
- 添加 mark_article_read 方法调用 saveread API 标记文章已读
- 修改 get_article_attachments 返回文章的 channel_id 和 article_id
- 对每篇文章都调用 mark_article_read,无论是否有附件
- 解决米米88、黄紫夏99等账号文章无法标记已读的问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-14 13:24:29 +08:00 |
|
|
|
6313631b09
|
fix: 改进分页逻辑,确保遍历所有页面不漏掉内容
- 当前页有新文章时,重新获取第1页(已读文章消失后页面上移)
- 当前页无新文章时,继续检查后续页面
- 遍历完所有页面后才结束循环
- 解决 mark_read 延迟导致后续页面内容被漏掉的问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-14 13:17:52 +08:00 |
|
|
|
09188b8765
|
fix: 防止浏览时无限循环重复处理已处理文章
- 添加 processed_hrefs 集合跟踪已处理的文章 href
- 处理文章前检查是否已处理过,避免重复处理
- 添加 new_articles_in_page 计数器,当前页无新文章时退出循环
- 解决 mark_read 未立即生效导致的无限循环问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-14 13:14:22 +08:00 |
|
|
|
b2b0dfd500
|
fix: 修复分页错位问题,改为循环获取第1页直到清空
问题:标记已读后文章从列表消失,导致后续页面上移,
造成按页码遍历时遗漏部分内容。
解决:每次处理完当前页后重新获取第1页,循环直到没有内容。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-14 13:08:34 +08:00 |
|
|
|
2ff9e18842
|
fix: 修复附件解析正则,匹配 download2.ashx
正则从 download\.ashx 改为 download2?\.ashx
以同时支持新旧两种附件下载链接格式
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-14 12:48:58 +08:00 |
|
|
|
1bd49f804c
|
docs: 更新浏览逻辑注释,反映网站参数变更
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-14 12:45:40 +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 |
|
|
|
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 |
|
|
|
41ead4bead
|
replace screenshot pipeline and update admin
|
2025-12-31 16:50:35 +08:00 |
|
Yu Yon
|
c32f7b797d
|
chore: add API diagnostic request logging toggles
|
2025-12-24 19:26:50 +08:00 |
|
|
|
ec84903745
|
fix: 启动后60秒内所有请求使用15秒超时
问题:之前的 _first_request 只对第一个HTTP请求有效,但login()
需要两次请求(GET登录页+POST登录),导致实际的POST登录
请求仍然只有5秒超时,在冷启动时容易失败。
修复:改为基于模块启动时间的超时策略
- 启动后60秒内:所有请求使用15秒超时
- 60秒后:恢复正常的5秒超时
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-24 01:42:03 +08:00 |
|
|
|
151fc3e09f
|
perf: 启动预热优化 - 解决容器重启后首批任务慢/失败
问题:容器重启后前两批任务明显变慢或失败
- 第一批:代理/目标服务器连接冷启动导致超时
- 第二批:浏览器池冷启动需要创建浏览器
解决方案:
- browser_pool_worker.py: 添加 pre_warm 参数,启动时预创建1个浏览器
- api_browser.py: 添加 warmup_api_connection() 预热 TCP/TLS 连接
- api_browser.py: 首次请求使用更长超时(10s),后续恢复正常
- app.py: 启动时后台调用 API 预热
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-24 01:18:18 +08:00 |
|
|
|
c5f019be5a
|
chore: restore API request timeout 5s
|
2025-12-18 09:46:01 +08:00 |
|
|
|
433a3cb806
|
fix: avoid blocking browser init
|
2025-12-18 09:38:02 +08:00 |
|
|
|
5393648d21
|
fix(api): 列表页失败不算完成
|
2025-12-17 19:24:08 +08:00 |
|
|
|
3f667dd21b
|
fix(api): 超时按单条处理避免中途结束
|
2025-12-17 15:49:05 +08:00 |
|
|
|
4c9bed0f0b
|
perf: 默认请求超时降为5s
|
2025-12-16 23:17:21 +08:00 |
|
|
|
1b707fdace
|
fix: 浏览内容进度实时显示
|
2025-12-16 21:19:48 +08:00 |
|
|
|
a346509a5f
|
同步更新:重构路由、服务模块,更新前端构建
|
2025-12-14 21:47:46 +08:00 |
|
|
|
a9c8aac48f
|
fix: 账号页闪烁/浏览类型/截图复制/时区统一
|
2025-12-14 11:30:49 +08:00 |
|
|
|
d7d878dc08
|
fix: 内存溢出与任务调度优化
|
2025-12-13 17:40:36 +08:00 |
|
|
|
db956e2487
|
自动获取真实姓名作为账号备注(静默完成)
|
2025-12-12 10:36:47 +08:00 |
|
|
|
de51e1b7c7
|
修复多项安全漏洞和Bug
1. 安全修复:
- 修复密码重置接口用户枚举漏洞,统一返回消息防止信息泄露
- 统一密码强度验证为8位以上且包含字母和数字
- 添加第三方账号密码加密存储(Fernet对称加密)
- 修复默认管理员弱密码问题,改用随机生成强密码
- 修复管理员回复XSS漏洞,添加HTML转义
- 将MD5哈希替换为SHA256
2. 并发Bug修复:
- 修复日志缓存竞态条件,添加锁保护
- 修复截图信号量配置变更后不生效问题
3. 其他改进:
- 添加API参数类型验证和边界检查
- 新增crypto_utils.py加密工具模块
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 19:14:14 +08:00 |
|
|
|
114a4107bb
|
修复所有资源泄漏问题(P0级bug)
修复的Bug:
- Bug #21: Playwright浏览器实例泄漏
- Bug #22: 数据库连接泄漏(已由连接池解决)
- Bug #23: 截图文件句柄泄漏
- Bug #24: 线程资源未清理
- Bug #25: requests.Session对象泄漏
主要改进:
1. PlaywrightAutomation类:
- 添加atexit注册,确保进程退出时关闭浏览器
- 添加__enter__/__exit__支持context manager
- 添加_closed标志防止重复关闭
- 添加_cleanup_on_exit静默清理方法
2. APIBrowser类:
- 添加atexit注册,确保Session正确关闭
- 添加__enter__/__exit__支持context manager
- 添加_closed标志防止重复关闭
3. 截图功能增强:
- 使用临时文件机制
- 添加文件大小验证
- 失败时自动清理临时文件
- 确保不产生垃圾文件
4. 应用关闭清理:
- 添加cleanup_on_exit()函数
- 注册SIGINT/SIGTERM信号处理器
- 停止所有运行中的任务
- 等待线程优雅退出
- 关闭浏览器线程池
- 关闭数据库连接池
影响:
- 防止长期运行导致的内存泄漏
- 确保进程异常退出时正确清理资源
- 提升系统稳定性和可靠性
受影响文件:
- playwright_automation.py
- api_browser.py
- app.py
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 13:48:06 +08:00 |
|
Yu Yon
|
8fd6923453
|
修复所有bug并添加新功能
- 修复添加账号按钮无反应问题
- 添加账号备注字段(可选)
- 添加账号设置按钮(修改密码/备注)
- 修复用户反馈���能
- 添加定时任务执行日志
- 修复容器重启后账号加载问题
- 修复所有JavaScript语法错误
- 优化账号加载机制(4层保障)
🤖 Generated with Claude Code
|
2025-12-10 11:19:16 +08:00 |
|