Commit Graph
63 Commits
Author SHA1 Message Date
胡绍康andClaude Opus 4.6 6110badd7a feat: 迁移 oauth 模块到 controllers 层
- 迁移 2 个 oauth 相关 API 到 controllers/oauth.py:
  - api_get_oauth_auth_url
  - api_exchange_oauth_token
- 更新 routes/oauth.py 移除 impl 参数
- OAuth 配置常量从 config 模块读取

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 08:29:20 +08:00
胡绍康andClaude Opus 4.6 2ab1721946 feat: 迁移 scheduler 模块到 controllers 层
- 迁移 api_get_scheduler_status 到 controllers/scheduler.py
- 更新 routes/scheduler.py 移除 impl 参数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 08:19:27 +08:00
胡绍康andClaude Opus 4.6 fa99c48ef6 feat: 迁移 pages 模块到 controllers 层
- 迁移 4 个 pages 相关路由到 controllers/pages.py:
  - login (GET/POST)
  - logout
  - index
  - get_csrf_token
- 更新 routes/pages.py 移除 impl 参数
- 保留 csrf_exempt 装饰器支持

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:49:47 +08:00
胡绍康andClaude Opus 4.6 3bab297aac feat: 迁移 audit 模块到 controllers 层
- 迁移 api_get_audit_logs 到 controllers/audit.py
- 更新 routes/audit.py 移除 impl 参数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:40:14 +08:00
胡绍康andClaude Opus 4.6 3228661a93 feat: 迁移 system 模块到 controllers 层
- 迁移 4 个 system 相关 API 到 controllers/system.py:
  - healthz (无需登录)
  - api_system_health
  - api_system_diagnostics
  - api_system_upgrade_status
- 更新 routes/system.py 移除 impl 参数
- 添加 utcnow 辅助函数和 REFRESH_LOCK_NAME 常量

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:33:46 +08:00
胡绍康andClaude Opus 4.6 97ceaac64e feat: 迁移 settings 模块到 controllers 层
- 迁移 3 个 settings 相关 API 到 controllers/settings.py:
  - api_get_settings
  - api_update_settings
  - api_validate_cron
- 更新 routes/settings.py 移除 impl 参数
- 暂时通过延迟导入 legacy 模块的 init_scheduler 和 configure_scheduler_jobs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:24:28 +08:00
胡绍康andClaude Opus 4.6 4d28546de7 feat: 迁移 tags 模块到 controllers 层
- 迁移 3 个 tags 相关 API 到 controllers/tags.py:
  - api_get_tags
  - api_add_tag
  - api_delete_tag
- 更新 routes/tags.py 移除 impl 参数
- api_batch_manage_tags 暂保留在 legacy,将在 accounts 模块迁移时处理

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:12:30 +08:00
胡绍康andClaude Opus 4.6 163c262945 feat: 迁移 groups 模块到 controllers 层
- 创建 outlook_web/controllers/ 目录
- 迁移 6 个 groups 相关 API 到 controllers/groups.py:
  - api_get_groups
  - api_get_group
  - api_add_group
  - api_update_group
  - api_delete_group
  - api_export_group
- 更新 routes/groups.py 移除 impl 参数
- 更新 app.py 使用新的 Blueprint 注册方式

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:01:40 +08:00
胡绍康andClaude Opus 4.6 5e7651ba7f docs: 更新项目文档 - 批量操作与自动化增强功能
更新内容:
- project-overview.md: 添加批量操作、验证码提取、自动轮询功能说明
- architecture.md: 添加 verification_extractor.py 服务层说明
- 同步更新已完成功能列表

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:45:20 +08:00
胡绍康andClaude Opus 4.6 66d9b9749b feat: 批量操作与自动化增强 - 全选/复制验证码/自动轮询
功能实现:
- 全选功能:跨分组保持选中状态,使用全局 Set 存储
- 验证码提取:支持 Graph API → IMAP 回退策略
- 自动轮询:新邮件通知、红点提示、连续错误自动停止

BUG 修复 (BUG-001 ~ BUG-008):
- Toast 通知位置移至右下角
- 切换分组时保持全选状态
- 添加批量删除邮箱功能
- 验证码提取支持 IMAP 回退
- 修复轮询开关类型不一致 (boolean vs string)
- 完善轮询通知内容与红点位置
- 轮询次数校验改为 0-100 (0 表示持续)
- 复制按钮添加加载状态与反馈

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:03:53 +08:00
胡绍康andClaude Opus 4.6 a9b3e4254f fix: 修复临时邮箱生成失败的BUG (BUG-00001)
【问题描述】
- 用户生成临时邮箱时返回笼统错误:生成临时邮箱失败,请稍后重试
- 错误码:LEGACY_ERROR,无法定位具体失败原因
- 可能原因:API Key未配置、网络问题、API服务不可用等

【修复内容】
1. 改进 gptmail_request 函数
   - 添加 API Key 配置检查
   - 区分 10+ 种错误类型(CONFIG_ERROR, AUTH_ERROR, TIMEOUT_ERROR等)
   - 返回结构化错误信息

2. 改进 generate_temp_email 函数
   - 返回值改为 (email_addr, error_msg) 元组
   - 保留详细错误信息

3. 改进 api_generate_temp_email 函数
   - 使用详细错误信息返回给前端
   - 添加日志记录

4. 更新前端错误提示
   - 显示详细的错误信息

5. 编写单元测试
   - 新增 11 个单元测试
   - 更新 2 个现有测试的 mock

【测试结果】
- 所有测试通过:51/51 ✅

【相关文档】
- BUG文档:docs/BUGS/BUG-00001-临时邮箱生成失败.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:52:27 +08:00
胡绍康andClaude Opus 4.6 14b1a7fa09 refactor: P1阶段优化 - 收敛全局变量与清理legacy代码
- 收敛前端全局变量:将 window.lastRefreshTime 和 window._lastFetchErrorDetails 改为模块变量
- 将内联 onclick 事件改为事件监听器,消除对全局变量的依赖
- 删除 legacy.py 中已被 re-export 覆盖的旧函数实现(settings 和 groups 相关,约140行)
- 所有测试通过(40/40)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:30:02 +08:00
胡绍康andClaude Opus 4.6 192240436d refactor: 模块化架构重构 & 完善测试与文档体系
- 架构重构:拆分为 routes/services/repositories/security 分层结构
- 新增测试:添加完整的单元测试套件(烟雾测试/核心功能/错误处理等)
- 完善文档:添加开发者指南、运行验证、回归清单、性能基线等文档
- 前后端分离:静态资源独立,模板组件化
- CI/CD:添加 GitHub Actions 自动化测试
- Docker 优化:添加健康检查,修复调度器启动问题
- 配置增强:支持 SCHEDULER_AUTOSTART 环境变量

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 18:54:16 +08:00
assast 14614249f7 1 2026-02-18 21:49:58 +08:00
assast 3d8f2157b9 feat: 分组代理支持 & API优先级回退 & 详细错误弹框
- 分组管理新增 proxy_url 字段,支持 HTTP/SOCKS5 代理
- Graph API 请求(获取邮件/详情/刷新Token/删除)均支持走分组代理
- 获取邮件/删除邮件按 Graph API → IMAP(新) → IMAP(旧) 优先级自动回退
- ProxyError 时跳过 IMAP 回退,避免无意义重试
- 所有方式失败时弹框逐一展示每种 API 的中文失败原因
- 更新 README 文档说明 API 优先级、代理支持、IMAP 删除限制
2026-02-18 21:39:47 +08:00
assast 11092a9e29 导出bug修复 2026-02-08 10:35:09 +08:00
assast 79b97b9685 bugfix 2026-02-08 10:27:54 +08:00
assast 36d785b07f 1 2026-02-08 10:18:54 +08:00
assast ae809e5c99 bugfix 2026-02-08 10:08:23 +08:00
assast c1538ac8a1 1 2026-02-08 09:29:08 +08:00
assast 9eacba823e bugfix 2026-02-08 09:05:09 +08:00
assast 932634dcbc 移动分组+导出bug修复 2026-02-08 08:47:35 +08:00
assast 8104d64b73 删除邮件功能 2026-01-31 18:29:19 +08:00
assast d61847b521 标签 2026-01-31 17:16:45 +08:00
assast de39d17c75 标签 2026-01-31 16:13:11 +08:00
assast 89b01f423a 新增邮箱标签,备注支持多行 2026-01-31 15:08:22 +08:00
assast db36c78e0f 添加新功能 2026-01-29 09:15:23 +08:00
assast c7446720db 邮件列表加缓存,加信任邮件功能 2026-01-29 09:14:55 +08:00
assast 6ac5734c0f 样式调整 2026-01-27 23:49:25 +08:00
assast 7142948dcf 样式调整 2026-01-27 23:43:03 +08:00
assast 873c660ee2 导出问题修复 2026-01-26 22:10:42 +08:00
assast d259630f59 修复安全漏洞 2026-01-26 21:58:43 +08:00
assast 3f789021d8 修复IMAP获取垃圾箱报错问题 2026-01-26 14:13:02 +08:00
assast 879c3f9df4 修改readme 2026-01-26 12:47:01 +08:00
assast 6e13afacb7 完整报错前端可查 2026-01-26 12:43:42 +08:00
assast 224bf97e36 修复按钮有时候无法点击的BUG 2026-01-26 11:36:26 +08:00
assast 1b36f74abc 新增备注展示功能 2026-01-25 22:46:33 +08:00
assast dd3c42fee7 添加定时刷新token保活功能 2026-01-25 19:22:58 +08:00
assast ffe06f6ad1 加全局搜索
加编号
加点击当前邮箱复制
2026-01-24 20:07:46 +08:00
assast b8cb87e180 bugfix 2026-01-23 18:30:44 +08:00
assast e459d440aa fix bug 2026-01-23 18:00:03 +08:00
assast 0e488e66a3 修复刷新token时,使用的是环境变量的client信息导致可能clientid信息等不一致导致刷新失败的问题 2026-01-23 17:48:31 +08:00
assast 0f8030cdf5 支持全屏模式查看邮件 2026-01-23 16:29:03 +08:00
assast c98268e0c0 修复长邮件展示不全问题 2026-01-23 15:45:44 +08:00
assast f6e0a022aa Merge remote-tracking branch 'origin/main'
# Conflicts:
#	README.md
2026-01-23 14:39:13 +08:00
assast 212f4778ef 全量刷新所有账号 Token,实时进度展示,防止 90 天过期(⭐ 2026-01-23 新增) 2026-01-23 14:37:30 +08:00
assast e1b93d6453 Update README.md 2026-01-23 00:12:40 +08:00
assast 4795834f93 1 2026-01-22 20:16:57 +08:00
assast 0d8c306000 新增查看垃圾箱,界面获取refresh token 功能 2026-01-22 20:16:42 +08:00
assast 9149f8d500 docker 2026-01-21 11:47:55 +08:00