fix: Worker渲染后提取封面帧+预览任务自动关联edit_plan #1394
Reference in New Issue
Block a user
Delete Branch "fix/cover-extract-frames"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
Step6 封面生成返回 400:封面尚未生成,请先重新生成预览视频以触发封面自动提取
根因
修复
修复点 1 - Worker 封面帧提取
generation.py 在 _upload_and_record 后调用 MediaKitClient.extract_frames,取第一帧 URL 持久化到 cover_url
修复点 2 - API 自动关联 source_edit_plan_id
generation_preview.py 创建预览任务后,通过 template_id + user_id 查找 edit_plan,自动设置 source_edit_plan_id
测试
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
8daf25b83btof6d0a009e7代码审查结果 - PR #1394
⚠️ 问题(0个需要修改)
无
💡 建议(3个可选)
apps/api/app/api/routes/generation_preview.py 第324行:建议优化查询逻辑以避免边界条件遗漏
limit=20的计划,再在内存中遍历匹配user_id。如果该模板下用户的计划排在第20条之后,将导致自动关联失败。created_by_user_id的过滤条件,或者适当调大limit值,并确保查询排序(如按创建时间倒序)以优先关联最新计划。apps/worker/worker_app/tasks/generation.py 第1590行:建议简化条件判断
if snapshots and len(snapshots) > 0:存在冗余。在 Python 中空列表[]为 False,直接使用if snapshots:即可,代码更简洁。apps/api/app/api/routes/generation_preview.py 第318行:建议调整导入位置
SQLAlchemyEditPlanRepository的导入位于函数内部。除非是为了解决循环依赖,否则建议移至文件顶部,以符合代码规范并提升可读性。✅ 格式检查通过 | ✅ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-08-16 11:18:05 | 模型:
🗑️ 预览环境已清理
PR #1394 已关闭或合并,对应的预览环境已被清理。