优化脚本

This commit is contained in:
Azmat@qq.com
2026-08-25 16:40:22 +08:00
parent e2ec2d14af
commit df6784b90c
22 changed files with 893 additions and 156 deletions
+12 -9
View File
@@ -378,11 +378,14 @@ class QuickCreateJobSerializer(serializers.ModelSerializer):
]
def get_phase_index(self, obj) -> int:
# 前端四步:脚本 / 资产 / 故事板 / 视频。当前步未完成,不算 done。
if obj.phase == QuickCreateJob.Phase.PRODUCTION:
message = obj.message or ""
return 3 if "视频" in message else 2
return {
QuickCreateJob.Phase.PRODUCT: 0,
QuickCreateJob.Phase.SCRIPT: 1,
QuickCreateJob.Phase.ASSETS: 2,
QuickCreateJob.Phase.PRODUCTION: 3,
QuickCreateJob.Phase.SCRIPT: 0,
QuickCreateJob.Phase.ASSETS: 1,
QuickCreateJob.Phase.COMPLETE: 3,
}.get(obj.phase, 0)
@@ -398,16 +401,16 @@ class QuickCreateJobSerializer(serializers.ModelSerializer):
}
def get_result(self, obj) -> dict | None:
if obj.status != QuickCreateJob.Status.SUCCEEDED:
return None
project = obj.project
settings = self.get_settings(obj)
video_url = _final_video_url(project)
segments = list(project.video_segments.all())
if not video_url and len(segments) == 1:
version = segments[0].adopted_version
if version is not None and is_playable_video(version.asset):
video_url = _asset_preview_url(version.asset)
if not video_url:
for segment in sorted(segments, key=lambda item: item.sort_order):
version = segment.adopted_version
if version is not None and is_playable_video(version.asset):
video_url = _asset_preview_url(version.asset)
break
first_shot = next(
(shot for shot in project.storyboard_shots.all() if shot.adopted_version_id),
None,