fix(cover): E2兜底封面标题样式透传color/position/font_size #1467

Merged
xiaoxia merged 2 commits from fix/cover-title-style-e2 into develop 2026-08-23 14:57:06 +08:00
Owner

问题

封面E2兜底路径(从源素材抽帧)只用硬编码白色标题,未读取plan.config中的color/position/font_size,导致封面标题样式与预览视频不一致。

改动

  1. packages/shared/title_overlay.py:apply_title_to_image 新增 color 参数,内部用 _parse_hex_color 解析 #RRGGBB/#RGB,替换硬编码白色
  2. apps/api/.../generation_cover.py:E2路径从 plan.config.title 读取完整样式(color/font_color/position/font_size),_persist_cover_frame 新增 title_color/title_position/title_font_size 参数并透传
  3. apps/worker/.../thumbnail_generator.py:apply_title_overlay 和 extract_and_upload_cover_frames 同步新增样式参数透传
  4. 兼容前端 font_color 字段名
  5. 新增6个单测,36个相关测试全通过
## 问题 封面E2兜底路径(从源素材抽帧)只用硬编码白色标题,未读取plan.config中的color/position/font_size,导致封面标题样式与预览视频不一致。 ## 改动 1. **packages/shared/title_overlay.py**:apply_title_to_image 新增 color 参数,内部用 _parse_hex_color 解析 #RRGGBB/#RGB,替换硬编码白色 2. **apps/api/.../generation_cover.py**:E2路径从 plan.config.title 读取完整样式(color/font_color/position/font_size),_persist_cover_frame 新增 title_color/title_position/title_font_size 参数并透传 3. **apps/worker/.../thumbnail_generator.py**:apply_title_overlay 和 extract_and_upload_cover_frames 同步新增样式参数透传 4. 兼容前端 font_color 字段名 5. 新增6个单测,36个相关测试全通过
xiaoxia added 1 commit 2026-08-23 14:44:37 +08:00
fix(cover): E2兜底封面标题样式透传color/position/font_size
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 22s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m0s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m36s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m50s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m4s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m1s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m29s
AI Code Review / AI Code Review (pull_request) Successful in 2m44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
6090412d26
- title_overlay.apply_title_to_image 新增 color 参数,支持自定义字体颜色
- 新增 _parse_hex_color 解析 #RRGGBB/#RGB,无效值 fallback 白色
- generation_cover E2路径从 plan.config.title 读取完整样式
  (color/font_color/position/font_size),传给 _persist_cover_frame
- _persist_cover_frame 新增 title_color/title_position/title_font_size 参数
- Worker thumbnail_generator 的 apply_title_overlay 和
  extract_and_upload_cover_frames 同步透传样式参数
- 兼容前端 font_color 字段名(与 color 二选一)
- 新增6个单测:颜色解析、自定义颜色、E2完整样式透传、font_color兼容

🚀 预览环境已部署

项目 详情
PR号 #1467
预览链接 https://pr-1467.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1467 | | 预览链接 | [https://pr-1467.preview.xiaoxiajianji.com](https://pr-1467.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-08-23 14:47:29 +08:00
style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 44s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 36s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m37s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m40s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m47s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m18s
AI Code Review / AI Code Review (pull_request) Successful in 2m22s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m44s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m40s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m11s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m52s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 8m2s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 7s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 49s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m44s
720b040710
Collaborator

代码审查结果 - PR #1467

⚠️ 问题(0个需要修改)

💡 建议(0个可选)


格式检查通过 | 逻辑审查通过 | 性能良好

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:0 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

良好实践

  1. 健壮的兼容性处理:在 generation_cover.py 中,同时兼容了 colorfont_color 字段,确保新旧配置格式均能正常工作,降低了升级风险。
  2. 完善的防御性编程:新增的 _parse_hex_color 函数对非法颜色格式(如空值、错误格式、非字符串)进行了完善的捕获和 Fallback 处理,避免了因配置错误导致程序崩溃。
  3. 测试覆盖充分:针对新增的颜色解析、样式透传、字段回退逻辑均编写了对应的单元测试,确保了代码变更的可靠性。

🤖 由 AI 代码审查机器人自动生成 | 2026-08-23 06:49:49 | 模型:

## 代码审查结果 - PR #1467 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(0个可选) 无 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 ### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **健壮的兼容性处理**:在 `generation_cover.py` 中,同时兼容了 `color` 和 `font_color` 字段,确保新旧配置格式均能正常工作,降低了升级风险。 2. **完善的防御性编程**:新增的 `_parse_hex_color` 函数对非法颜色格式(如空值、错误格式、非字符串)进行了完善的捕获和 Fallback 处理,避免了因配置错误导致程序崩溃。 3. **测试覆盖充分**:针对新增的颜色解析、样式透传、字段回退逻辑均编写了对应的单元测试,确保了代码变更的可靠性。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-23 06:49:49 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot approved these changes 2026-08-23 14:55:30 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-08-23 14:55:30 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia merged commit 4de4b8dc08 into develop 2026-08-23 14:57:06 +08:00

🗑️ 预览环境已清理

PR #1467 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1467 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.