7015de0055
feat: 添加公告功能
2025-12-13 18:40:42 +08:00
d7d878dc08
fix: 内存溢出与任务调度优化
2025-12-13 17:40:36 +08:00
9e761140c1
feat: SMTP配额自动重置(北京时间凌晨0点)
...
- 添加reset_smtp_daily_quota函数主动重置配额
- 添加定时任务在北京时间00:00自动重置SMTP配额
- 保留被动重置作为备份机制
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-13 04:01:50 +08:00
a7976bcdfc
fix: SMTP配额重置使用北京时间
...
- 添加pytz时区支持
- 配额重置日期改为使用北京时间(UTC+8)
- 确保配额在北京时间凌晨0点重置,而不是UTC时间
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-13 03:57:44 +08:00
d77595eba0
fix: 修复定时任务日志重复打印问题
...
- 添加配置变化检测,只在首次运行或配置变化时打印日志
- 避免每5秒重复打印相同的定时任务设置日志
- 减少日志噪音,提高日志可读性
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-13 03:38:47 +08:00
42cc86e290
fix: 修复browser_installer.py语法错误,同步服务器代码
...
- 修复browser_installer.py顶部错误的import语句
- 移除browser_installer.py中未正确实现的_cleanup_zombie_processes方法
- 恢复playwright_automation.py中的SIGKILL(服务器版本)
- 同步database.py和email_service.py的最新代码
注意:内存占用从50MB增加到142MB是正常的,因为:
1. 4个浏览器Worker线程(按需模式)占用基础内存
2. 新增的清理代码和SIGCHLD处理器占用少量内存
3. 当前内存使用在正常范围内
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-13 03:35:12 +08:00
Yu Yon
b905739515
fix: 修复内存泄漏和僵尸进程问题
...
- 添加SIGCHLD信号处理器自动回收僵尸子进程
- 定期清理函数增加僵尸进程回收
- 增加batch_task_screenshots超时清理(30分钟)
- 增加pending_random_schedules超时清理(2小时)
- 修复playwright_automation.py的_force_cleanup使用SIGTERM+waitpid
- browser_installer.py浏览器检测后添加僵尸进程清理
内存占用从111MB降至53MB,僵尸进程从6个降至0个
2025-12-12 23:42:30 +08:00
Yu Yon
352c61fbd4
修复添加账号后前端不实时显示的问题
...
account_update事件处理时判断是否为新账号,新账号则重新渲染整个列表
🤖 Generated with Claude Code
2025-12-12 15:54:14 +08:00
Yu Yon
c793999f3c
修复添加账号后不实时显示的问题
...
添加账号成功后通过socket推送account_update事件,前端实时更新列表
🤖 Generated with Claude Code
2025-12-12 15:52:12 +08:00
512380a80d
删除敏感文件,更新.gitignore
...
删除的文件:
- data/cookies/*.json - 用户登录凭据
- deploy_to_production.sh - 服务器信息
- verify_deployment.sh - 服务器信息
- data/*.backup_* - 数据库备份
- docs/ - 内部文档
- ftp-manager.db - 无用空文件
更新.gitignore防止再次提交
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 15:41:33 +08:00
90f503518f
修复bug和清理调试代码
...
1. email_service.py: 删除未定义的log_email_send调用(send_email内部已记录日志)
2. app.py: 删除[DEBUG run_task]调试打印语句
3. playwright_automation.py: 删除[调试]诊断日志块
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 15:36:36 +08:00
Yu Yon
b15e6f2af0
修复高优先级安全和稳定性问题
...
1. app.py:
- 添加user_semaphores_lock线程锁,修复get_user_semaphore竞态条件
- 将9处裸except:改为except Exception:或具体异常类型
2. database.py:
- 将3处裸except:改为except Exception:
3. email_service.py:
- 添加_smtp_config_lock线程锁
- 修复daily_sent计数竞态条件:获取配置时预增,失败时回退
- _get_available_smtp_config和_get_next_available_smtp_config使用锁保护
🤖 Generated with Claude Code
2025-12-12 15:04:58 +08:00
Yu Yon
8b1014b922
添加任务自动重试机制
...
- 任务执行失败(非登录失败)时自动重试,最多重试2次
- 重试间隔5秒,给前端显示状态"等待重试"
- 添加sys模块导入修复
🤖 Generated with Claude Code
2025-12-12 13:45:34 +08:00
Yu Yon
affbf80543
更新VIP权限对比表,新增随机时间执行、邮件通知、自动备注姓名等功能说明
...
- 更新VIP会员权限对比表
- 新增基础浏览任务、随机时间执行、邮件通知、自动备注姓名功能对比
- 修正账号管理数量为最多3个
🤖 Generated with Claude Code
2025-12-12 11:55:31 +08:00
9c298928f3
添加自动备注日志
2025-12-12 10:48:36 +08:00
db956e2487
自动获取真实姓名作为账号备注(静默完成)
2025-12-12 10:36:47 +08:00
Yu Yon
1072e90070
添加定时任务随机时间执行功能;修复手动执行任务不发送邮件通知
2025-12-12 10:12:27 +08:00
8c8c708ce7
fix: 修复send_email参数名错误
...
使用正确的参数名: to_email, body, html_body
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 23:31:22 +08:00
264fc9e3f3
fix: 修复批次邮件在截图完成后发送
...
之前邮件在run_task线程结束时发送,但截图是异步的,导致截图还没完成就发送了。
现在改为在截图回调中检测,当所有截图完成时才发送打包邮件。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 23:27:56 +08:00
d6fa5b91ea
feat: 定时任务截图打包发送邮件
...
1. 添加批次任务跟踪机制,收集同一定时任务的所有账号截图
2. 等所有账号执行完成后,将截图打包成ZIP发送一封邮件
3. 邮件包含任务执行详情表格和统计信息
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 23:21:24 +08:00
a3b97683ae
fix: 使用容器内可用字体生成验证码
...
尝试多个字体路径,优先使用Liberation字体
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:52:39 +08:00
8ddf47c2aa
fix: 增大验证码显示尺寸
...
前端验证码图片高度从36/40px增大到50px,配合后端生成的160x60图片
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:49:35 +08:00
ad3062bd28
fix: 修复邮件设置checkbox点击范围过大问题
...
将label改为div+span结构,使只有checkbox本身可点击
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:48:06 +08:00
79cf3c2f30
fix: 修复邮箱绑定验证错误及多项改进
...
1. 修复email_verified字段缺失导致的500错误
2. 将邮件主题从"知识管理平台"改为"自动化学习"
3. 增大验证码字体(28->42)和图片尺寸(120x40->160x60)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:45:44 +08:00
65e2414ede
fix: 修复邮件Token时间解析错误
...
问题:数据库中的时间戳包含微秒(如 2025-12-11 14:31:20.307257),
但代码使用 '%Y-%m-%d %H:%M:%S' 格式解析会报错。
解决:添加 parse_datetime() 函数,支持带微秒和不带微秒两种格式。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:33:46 +08:00
b8abd6e1a2
feat: 添加邮件功能第六阶段 - API浏览任务通知
...
在API模式浏览任务完成时(不截图的情况下),也发送任务完成邮件通知
修改位置: app.py run_browse_task函数
- 在enable_screenshot=False时,浏览成功后发送邮件通知
- 复用email_service.send_task_complete_email_async()
至此邮件功能六个阶段全部完成:
1. 邮件基础设施(多SMTP配置、故障转移)
2. 注册邮箱验证
3. 密码重置邮件
4. 任务完成通知(带截图)
5. 用户邮箱绑定
6. API浏览任务通知
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:22:07 +08:00
29d4bdfbcb
feat: 添加邮件功能第五阶段 - 用户邮箱绑定
...
1. 添加邮箱绑定验证邮件模板 (templates/email/bind_email.html)
2. 在email_service.py中添加:
- send_bind_email_verification() 发送绑定验证邮件
- verify_bind_email_token() 验证绑定Token
3. 在database.py中添加:
- update_user_email() 更新用户邮箱
4. 在app.py中添加API:
- GET /api/user/email - 获取用户邮箱信息
- POST /api/user/bind-email - 发送绑定验证邮件
- GET /api/verify-bind-email/<token> - 验证绑定Token
- POST /api/user/unbind-email - 解绑邮箱
5. 更新templates/index.html:
- 将"修改密码"弹窗改为"个人设置"
- 添加邮箱绑定/解绑功能UI
- 显示邮箱状态(未绑定/待验证/已验证)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:20:29 +08:00
0ccddd8c63
feat: 添加邮件功能第四阶段 - 任务完成通知
...
1. 添加任务完成邮件模板 (templates/email/task_complete.html)
2. 在email_service.py中添加:
- task_notify_enabled 字段支持
- send_task_complete_email() 函数,支持附件大小限制和分批发送
- send_task_complete_email_async() 异步发送函数
- MAX_ATTACHMENT_SIZE 常量 (10MB)
3. 更新app.py:
- 邮件设置API支持task_notify_enabled字段
- 截图回调中集成任务完成邮件发送
4. 更新admin.html:
- 添加"启用任务完成通知"开关
- 更新loadEmailSettings/updateEmailSettings函数
附件超过10MB时会自动分两封邮件发送(通知+截图),作为容错机制
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 22:09:59 +08:00
93375b612f
feat: 添加邮件功能第三阶段 - 密码重置
...
实现通过邮件自助重置密码功能:
- 新增发送密码重置邮件API (/api/forgot-password)
- 新增密码重置页面路由 (/reset-password/<token>)
- 新增确认密码重置API (/api/reset-password-confirm)
新增文件:
- templates/email/reset_password.html - 密码重置邮件模板
- templates/reset_password.html - 密码重置页面
修改文件:
- email_service.py - 添加密码重置相关函数
- send_password_reset_email()
- verify_password_reset_token()
- confirm_password_reset()
- app.py - 添加密码重置相关API
- templates/login.html - 忘记密码支持两种方式:
- 启用邮件功能:通过邮件自助重置
- 未启用邮件:提交申请等待管理员审核
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 21:58:49 +08:00
de8edcb3a6
feat: 添加邮件功能第二阶段 - 注册邮箱验证
...
实现注册时的邮箱验证功能:
- 修改注册API支持邮箱验证流程
- 新增邮箱验证API (/api/verify-email/<token>)
- 新增重发验证邮件API (/api/resend-verify-email)
- 新增邮箱验证状态查询API (/api/email/verify-status)
新增文件:
- templates/email/register.html - 注册验证邮件模板
- templates/verify_success.html - 验证成功页面
- templates/verify_failed.html - 验证失败页面
修改文件:
- email_service.py - 添加发送注册验证邮件函数
- app.py - 添加邮箱验证相关API
- database.py - 添加get_user_by_email函数
- app_config.py - 添加BASE_URL配置
- templates/register.html - 支持邮箱必填切换
- templates/login.html - 添加重发验证邮件功能
- templates/admin.html - 添加注册验证开关和BASE_URL设置
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 21:51:07 +08:00
966572cc94
feat: 添加邮件功能第一阶段 - 邮件基础设施
...
新增功能:
- 创建 email_service.py 邮件服务模块
- 支持多SMTP配置(主备切换、故障转移)
- 发送纯文本/HTML邮件
- 发送带附件邮件(支持ZIP压缩)
- 异步发送队列(多线程工作池)
- 每日发送限额控制
- 发送日志记录和统计
- 数据库表结构
- smtp_configs: 多SMTP配置表
- email_settings: 全局邮件设置
- email_tokens: 邮件验证Token
- email_logs: 邮件发送日志
- email_stats: 邮件发送统计
- API接口
- GET/POST /yuyx/api/email/settings: 全局邮件设置
- CRUD /yuyx/api/smtp/configs: SMTP配置管理
- POST /yuyx/api/smtp/configs/<id>/test: 测试SMTP连接
- POST /yuyx/api/smtp/configs/<id>/primary: 设为主配置
- GET /yuyx/api/email/stats: 邮件统计
- GET /yuyx/api/email/logs: 邮件日志
- POST /yuyx/api/email/logs/cleanup: 清理日志
- 后台管理页面
- 新增"邮件配置"Tab
- 全局邮件开关、故障转移开关
- SMTP配置列表管理
- 添加/编辑SMTP配置弹窗
- 邮件发送统计展示
- 邮件日志查询和清理
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 21:38:28 +08:00
f1cd5176de
修复用户和管理员session冲突问题
...
问题:在同一浏览器先登录用户再登录管理员时,用户会掉线
原因:管理员登录时使用session.clear()清除了整个session
修复:改为只清除管理员相关的session键,保留用户登录状态
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 20:41:53 +08:00
f326499a6a
添加Pillow依赖用于验证码图片生成
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 20:26:54 +08:00
b0475bb1ba
添加cryptography依赖和crypto_utils.py到Docker构建
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 20:09:22 +08:00
7cfb76abf2
修复12项安全漏洞和代码质量问题
...
安全修复:
- 使用secrets替代random生成验证码,提升安全性
- 添加内存清理调度器,防止内存泄漏
- PIL缺失时返回503而非降级服务
- 改进会话安全配置,支持环境自动检测
- 密钥文件路径支持环境变量配置
Bug修复:
- 改进异常处理,不再吞掉SystemExit/KeyboardInterrupt
- 清理死代码(if False占位符)
- 改进浏览器资源释放逻辑,使用try-finally确保关闭
- 重构数据库连接池归还逻辑,修复竞态条件
- 添加安全的JSON解析方法,处理损坏数据
- 日志级别默认值改为INFO
- 提取魔法数字为可配置常量
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 20:00:19 +08:00
2e4b64dcb2
修复37项安全漏洞和Bug
...
高危修复:
- app.py: 添加ip_rate_limit_lock线程锁保护IP限流字典
- app.py: 添加validate_ip_port()验证代理IP/端口范围
- database.py: SQL字段名白名单验证防止注入
- playwright_automation.py: 改进浏览器进程强制清理逻辑
中危修复:
- database.py: 统一时区处理函数get_cst_now()
- database.py: 消除循环导入,移动app_security导入到顶部
- playwright_automation.py: 所有bare except改为except Exception
- app_config.py: dotenv导入失败警告+安全配置检查
- db_pool.py: 添加详细异常堆栈日志
- app_security.py: 用户名过滤零宽字符
- database.py: delete_old_task_logs分批删除避免锁表
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 19:35:29 +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
b9edc4aaa2
修复多项安全漏洞
...
安全修复清单:
1. 验证码改为图片方式返回,防止明文泄露
2. CORS配置从环境变量读取,不再使用通配符"*"
3. VIP API添加@admin_required装饰器,统一认证
4. 用户登录统一错误消息,防止用户枚举
5. IP限流不再信任X-Forwarded-For头,防止伪造绕过
6. 密码强度要求提升(8位+字母+数字)
7. 日志不���记录完整session/cookie内容,防止敏感信息泄露
8. XSS防护:日志输出和Bug反馈内容转义HTML
9. SQL注入防护:LIKE查询参数转义
10. 路径遍历防护:截图目录白名单验证
11. 验证码重放防护:验证前删除验证码
12. 数据库连接池健康检查
13. 正则DoS防护:限制数字匹配长度
14. Account类密码私有化,__repr__不暴露密码
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 17:53:48 +08:00
4d3e4a09fd
修复代码质量问题(Bug #20 , #1 , #2 )
...
修复的Bug:
- Bug #20 : 删除重复函数定义 (update_admin_username重复定义)
- Bug #1 : 删除类型转换冗余 (APIBrowseResult->BrowseResult无意义转换)
- Bug #2 : 统一时区处理
主要改进:
1. 删除重复函数:
- 删除app.py:1023处重复的update_admin_username函数定义
- 避免函数覆盖导致的潜在问题
2. 删除冗余类型转换:
- APIBrowseResult和BrowseResult字段完全相同
- 删除run_task中的冗余转换代码
- 提升性能,减少维护成本
3. 统一时区处理:
- 新增BEIJING_TZ常量和get_beijing_now()辅助函数
- 替换所有分散的beijing_tz创建为统一函数调用
- 删除重复的datetime/pytz导入
- 涉及6处代码统一:
* log_to_client - 日志时间戳
* take_screenshot_for_account - 截图文件名
* get_screenshots - 文件修改时间
* run_scheduled_task - 定时任务星期检查
* check_user_schedules - 用户定时任务检查
* get_server_info_api - 服务器运行时长
影响:
- 提升代码质量和可维护性
- 统一时区处理,避免时间混淆
- 减少内存占用和CPU开销
受影响文件:
- app.py (所有修复)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 14:25:08 +08:00
6a905909d9
修复关键安全漏洞(Bug #19和Bug #13 )
...
修复的Bug:
- Bug #19 : 路径遍历漏洞
- Bug #13 : 浏览器上下文竞态条件
主要改进:
1. 路径遍历防护:
- /screenshots/<filename> 端点添加is_safe_path()验证
- /static/<path:filename> 端点添加is_safe_path()验证
- 防止攻击者通过../等序列访问系统文件
2. 浏览器资源并发保护:
- PlaywrightAutomation类添加_lock线程锁
- get_iframe_safe()方法使用锁保护main_page访问
- close()方法使用锁保护资源释放
- _cleanup_on_exit()使用非阻塞锁避免退出死锁
- 解决TOCTOU(Time-of-Check-Time-of-Use)竞态条件
影响:
- 防止路径遍历攻击,保护系统文件安全
- 防止多线程环境下的浏览器资源竞争
- 提升系统安全性和稳定性
受影响文件:
- app.py (路径验证)
- playwright_automation.py (线程锁)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 14:12:01 +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
795ff7f1a7
彻底修复移动端按钮溢出和布局问题
...
主要改进:
- 添加overflow-x: hidden防止水平滚动
- Header按钮缩小字体和padding,确保不溢出
- 工具栏改为垂直布局,按钮支持flex换行
- 所有按钮添加white-space: nowrap防止内部换行
- 账号卡片操作区域改为垂直布局
- 模态窗口按钮改为100%宽度垂直堆叠
- 表格容器添加横向滚动支持
- 优化所有flex容器的flex-wrap属性
- 减小移动端所有元素的padding和font-size
- 确保所有输入框和选择框width: 100%
受影响文件:
- templates/index.html - 全面优化移动端布局
- templates/admin.html - 全面优化管理后台移动端布局
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 13:21:17 +08:00
94e716b6b1
优化移动端UI布局,修复按钮和内容超出屏幕问题
...
主要改进:
- 优化header布局,支持flex-wrap防止内容溢出
- 改进工具栏和按钮组的响应式布局
- 优化表格在移动端的显示(添加横向滚动)
- 调整模态窗口在小屏幕上的尺寸和间距
- 优化表单输入框字体大小(防止iOS自动缩放)
- 改进统计卡片、导航栏等组件的移动端适配
- 为登录/注册页面添加移动端优化样式
受影响文件:
- templates/index.html - 用户主界面移动端优化
- templates/admin.html - 管理员界面移动端优化
- templates/login.html - 登录页面移动端优化
- templates/register.html - 注册页面移动端优化
- templates/admin_login.html - 管理员登录页面移动端优化
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-11 12:38:18 +08:00
48124db411
删除 DEPLOYMENT_SUMMARY.md
2025-12-10 22:40:05 +08:00
18943a11cb
删除 DEPLOYMENT_GUIDE.md
2025-12-10 22:39:48 +08:00
d05fe53dcf
删除 最终修复总结.md
2025-12-10 22:39:20 +08:00
edc177cf80
删除 功能验证清单.md
2025-12-10 22:39:15 +08:00
26d597f803
删除 BUG修复报告_20251210.md
2025-12-10 22:39:08 +08:00
e07544784c
🐛 修复定时任务执行耗时显示为0的问题
...
- 启动监控线程等待所有任务完成后再更新日志
- 通过参数传递避免闭包问题
- 耗时现在正确反映实际任务执行时间
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-10 22:09:30 +08:00
d811fc7c56
✨ 添加注册自动审核功能
...
- 系统配置新增:自动审核开关、每小时注册限制、赠送VIP天数
- 数据库:添加 auto_approve_enabled, auto_approve_hourly_limit, auto_approve_vip_days 字段
- 后端API:支持保存和读取自动审核配置
- 管理后台:新增注册自动审核配置区域(绿色背景)
- 注册逻辑:支持自动审核通过并赠送VIP
功能说明:
1. 启用自动审核后,新用户注册自动通过,无需管理员审批
2. 每小时注册限制防止恶意注册
3. 可配置注册赠送VIP天数(设为0则不赠送)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-10 21:42:28 +08:00