# 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`