169 lines
4.7 KiB
Markdown
169 lines
4.7 KiB
Markdown
# Day 18 - 后端模块化与规范完善
|
||
|
||
## 🧱 后端模块化重构 (10:10)
|
||
|
||
### 内容
|
||
- API 路由统一透传到 `modules/*`,路由仅负责参数/权限与响应
|
||
- 视频生成逻辑下沉 `workflow`,任务状态抽到 `task_store`
|
||
- `TaskStore` 支持 Redis 优先、不可用时自动回退内存
|
||
- Supabase 访问抽到 `repositories/*`,`deps/auth/admin` 全面改造
|
||
|
||
### 涉及文件
|
||
- `backend/app/modules/videos/router.py`
|
||
- `backend/app/modules/videos/workflow.py`
|
||
- `backend/app/modules/videos/task_store.py`
|
||
- `backend/app/modules/videos/service.py`
|
||
- `backend/app/modules/*/router.py`
|
||
- `backend/app/repositories/users.py`
|
||
- `backend/app/repositories/sessions.py`
|
||
- `backend/app/core/deps.py`
|
||
|
||
---
|
||
|
||
## ✅ 统一响应与异常处理 (11:00)
|
||
|
||
### 内容
|
||
- 统一 JSON 响应结构:`success/message/data/code`
|
||
- 全局异常处理中将 `detail` 转换为 `message`
|
||
|
||
### 涉及文件
|
||
- `backend/app/core/response.py`
|
||
- `backend/app/main.py`
|
||
|
||
---
|
||
|
||
## 🎞️ 素材重命名与存储操作 (11:40)
|
||
|
||
### 内容
|
||
- 新增素材重命名接口 `PUT /api/materials/{material_id}`
|
||
- Storage 增加 `move_file` 以支持重命名/移动
|
||
|
||
### 涉及文件
|
||
- `backend/app/modules/materials/router.py`
|
||
- `backend/app/services/storage.py`
|
||
|
||
---
|
||
|
||
## 🧾 平台列表调整 (12:10)
|
||
|
||
### 内容
|
||
- 平台顺序调整为:抖音 → 微信视频号 → B站 → 小红书
|
||
- 移除快手配置
|
||
|
||
### 涉及文件
|
||
- `backend/app/services/publish_service.py`
|
||
|
||
---
|
||
|
||
## 📘 后端开发规范补充 (12:30)
|
||
|
||
### 内容
|
||
- 新增 `BACKEND_DEV.md` 作为后端规范文档
|
||
- `BACKEND_README.md` 同步模块化结构与响应格式
|
||
|
||
### 涉及文件
|
||
- `Docs/BACKEND_DEV.md`
|
||
- `Docs/BACKEND_README.md`
|
||
|
||
---
|
||
|
||
## 🚀 发布管理进入体验优化 (13:10)
|
||
|
||
### 内容
|
||
- 首页预取 `/publish` 路由,进入发布管理时更快
|
||
- 发布页读取 `sessionStorage` 预取数据,首屏更快渲染
|
||
- 账号与作品列表增加骨架屏,避免空白等待
|
||
|
||
### 涉及文件
|
||
- `frontend/src/features/home/ui/HomePage.tsx`
|
||
- `frontend/src/features/home/model/useHomeController.ts`
|
||
- `frontend/src/features/publish/model/usePublishController.ts`
|
||
- `frontend/src/features/publish/ui/PublishPage.tsx`
|
||
|
||
---
|
||
|
||
## 📁 首页素材加载优化 (13:30)
|
||
|
||
### 内容
|
||
- 素材列表签名 URL 并发生成(并发上限 8),缩短加载时间
|
||
- 素材列表增加加载骨架,数量根据上次素材数量动态调整
|
||
|
||
### 涉及文件
|
||
- `backend/app/modules/materials/router.py`
|
||
- `frontend/src/features/home/model/useMaterials.ts`
|
||
- `frontend/src/features/home/model/useHomeController.ts`
|
||
- `frontend/src/features/home/ui/HomePage.tsx`
|
||
- `frontend/src/features/home/ui/MaterialSelector.tsx`
|
||
|
||
---
|
||
|
||
## 🎬 预览加载体验优化 (14:00)
|
||
|
||
### 内容
|
||
- 预览视频设置 `preload="metadata"`,缩短首帧等待
|
||
- 发布页预览按钮悬停预取视频资源
|
||
|
||
### 涉及文件
|
||
- `frontend/src/components/VideoPreviewModal.tsx`
|
||
- `frontend/src/features/home/ui/PreviewPanel.tsx`
|
||
- `frontend/src/features/publish/ui/PublishPage.tsx`
|
||
|
||
---
|
||
|
||
## 📹 微信视频号发布接入 (16:30)
|
||
|
||
### 内容
|
||
- 新增视频号上传器 `WeixinUploader`,打通上传/标题/简介/标签/发布流程
|
||
- 视频号扫码登录配置完善(iframe 扫码、候选二维码过滤)
|
||
- 发布平台与路由接入视频号
|
||
- 中文错误提示 + 关键节点截图保存到 `debug_screenshots`
|
||
|
||
### 涉及文件
|
||
- `backend/app/services/uploader/weixin_uploader.py`
|
||
- `backend/app/services/qr_login_service.py`
|
||
- `backend/app/services/publish_service.py`
|
||
- `backend/app/modules/publish/router.py`
|
||
- `backend/app/modules/login_helper/router.py`
|
||
|
||
---
|
||
|
||
## 🧪 视频号上传稳定性修复 (17:40)
|
||
|
||
### 内容
|
||
- 统一浏览器指纹(UA/locale/timezone)并支持系统 Chrome
|
||
- 增加 headful + xvfb-run 运行方案,避免 headless 检测与解码失败
|
||
- 强制 SwiftShader,修复 WebGL context loss
|
||
- 上传前转码为兼容 MP4(H.264 + AAC + faststart)
|
||
- 增强上传状态判断与调试日志 `weixin_network.log`
|
||
|
||
### 涉及文件
|
||
- `backend/app/core/config.py`
|
||
- `backend/app/services/uploader/weixin_uploader.py`
|
||
- `backend/app/services/qr_login_service.py`
|
||
- `run_backend.sh`
|
||
|
||
---
|
||
|
||
## 🧾 发布诊断增强 (18:10)
|
||
|
||
### 内容
|
||
- 抖音发布新增网络日志与失败截图,便于定位上传/发布失败
|
||
- 视频号上传失败截图与网络日志落盘
|
||
|
||
### 涉及文件
|
||
- `backend/app/services/uploader/douyin_uploader.py`
|
||
- `backend/app/services/uploader/weixin_uploader.py`
|
||
- `backend/app/debug_screenshots/*`
|
||
|
||
---
|
||
|
||
## 🧩 发布页交互调整 (18:20)
|
||
|
||
### 内容
|
||
- 未选择平台时禁用发布按钮
|
||
- 移除定时发布 UI/参数,仅保留立即发布
|
||
|
||
### 涉及文件
|
||
- `frontend/src/features/publish/ui/PublishPage.tsx`
|
||
- `frontend/src/features/publish/model/usePublishController.ts`
|