docs: add remaining review reports and docs

This commit is contained in:
2026-05-10 00:43:18 +08:00
parent e85eefa1c3
commit 7556352477
3 changed files with 101 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
# onmyoji_gacha Code Review Report
**Date**: 2026-05-10
**Files Reviewed**: 7 files, ~2318 lines
**Overall Grade**: B+ (Good quality, minor issues)
## Issues Found
### HIGH Priority
| # | File | Line | Category | Issue | Fix |
|---|------|------|----------|-------|-----|
| 1 | config.py | 107 | SECURITY | 硬编码默认ADMIN_TOKEN生产环境安全风险 | 添加运行时检查,生产环境强制覆盖 |
| 2 | api_utils.py | 48 | RELIABILITY | requests.get() 无timeout网络故障时阻塞 | 添加 timeout=10 参数 |
### MEDIUM Priority
| # | File | Line | Category | Issue | Fix |
|---|------|------|----------|-------|-----|
| 3 | web_api.py | 56 | RELIABILITY | session.execute() 无异常保护 | 添加 try/except |
| 4 | data_manager.py | N/A | CONCURRENCY | SQLite无线程锁保护 | 考虑添加 threading.Lock |
| 5 | __init__.py | N/A | CODE QUALITY | 全局实例无生命周期管理 | 现状可接受 |
### LOW Priority / Observations
- **Code Quality**: 整体代码结构良好,错误处理完善
- **Logging**: 日志覆盖合理,关键操作有日志记录
- **Comments**: 注释清晰,函数文档完整
- **Tests**: 建议添加单元测试覆盖核心抽卡逻辑
## Recommendations
1. **必须修复**: Issue #1, #2 (生产安全/稳定性)
2. **建议修复**: Issue #3 (API异常处理)
3. **可选改进**: Issue #4, #5
## Files Summary
| File | Lines | Issues | Grade |
|------|-------|--------|-------|
| config.py | 121 | 1 HIGH | B |
| utils.py | 42 | 0 | A- |
| api_utils.py | 252 | 1 HIGH | B |
| web_api.py | 200 | 1 MEDIUM | B+ |
| gacha.py | 307 | 0 | A- |
| data_manager.py | 594 | 1 MEDIUM | B+ |
| __init__.py | 802 | 1 MEDIUM | B+ |
---
**Reviewer**: Code Review Agent
**Next Steps**: Apply fixes for Issue #1, #2, #3

View File

@@ -0,0 +1,25 @@
# auto_friend_accept 评审报告
## 修复前问题清单 (1项)
| # | 严重度 | 问题 | 文件 |
|---|--------|------|------|
| 1 | **低** | 无速率限制恶意用户可连续发好友请求消耗API | auto_accept.py |
## 代码质量评估
| 维度 | 评级 | 说明 |
|------|------|------|
| 安全性 | A | 正确的 try/except 保护用户ID/flag安全记录 |
| 异步处理 | A | asyncio.sleep 延迟发送欢迎消息,不阻塞 |
| 代码结构 | A- | 清晰简洁46行配置与逻辑分离 |
| 错误处理 | B+ | 发送失败仅记录日志,不重试(可接受) |
## 验证
- [x] auto_accept_enabled 开关正确
- [x] 随机延迟防机器人检测
- [x] 无敏感信息泄露
- [x] 无同步阻塞调用
## 代码质量总结
评级:**A-** (简洁、安全、无关键bug)

View File

@@ -0,0 +1,31 @@
# auto_recall 评审报告
## 修复前问题清单 (2项)
| # | 严重度 | 问题 | 文件 |
|---|--------|------|------|
| 1 | **低** | `@validator` 在 pydantic v2 中已 deprecated | config.py:7 |
| 2 | **低** | `recall_message_after_delay` 撤回失败仅日志记录,无重试 | __init__.py:57 |
## 代码质量评估
| 维度 | 评级 | 说明 |
|------|------|------|
| 安全性 | A | 无敏感数据处理 |
| 异步处理 | A | 正确使用 asyncio.create_task + done_callback 防GC |
| 代码结构 | A | 配置与逻辑分离qqpush特殊路径清晰 |
| 错误处理 | B+ | 撤回失败仅记日志(可接受,撤回不保证成功) |
## 设计亮点
- `_recall_tasks` Set + `done_callback` 防止任务被GC回收
- Bot.on_called_api 钩子拦截所有消息发送,架构正确
- danding_qqpush 消息有独立的 qqpush_recall_delay 配置
## 验证
- [x] Task GC保护正确
- [x] API钩子过滤逻辑正确
- [x] 无同步阻塞
- [x] config validator 在 pydantic v2 下兼容运行
## 代码质量总结
评级:**B+** (架构优秀仅低优先级deprecation问题)