front: recover watermark url from DONE tasks or resubmit when missing result

Made-with: Cursor
This commit is contained in:
2026-04-27 16:46:39 +08:00
parent 968ed4ab09
commit 80459e2b60
+16
View File
@@ -152,11 +152,27 @@ export default function useRefResource() {
if (result) {
return result.watermarked_video_url || result.marked_url;
}
// DONE but task_result missing: query task details once to recover embedded url result.
for (let i = doneTasks.length - 1; i >= 0; i--) {
const doneTask = doneTasks[i];
if (!doneTask.task_id) continue;
const dbTask = await getTask(doneTask.task_id);
if (!dbTask) continue;
const recovered = get_task_result(dbTask);
if (recovered) {
doneTask.task_result = recovered as any;
await request({url: "/api/v1/ws/update_ref_resource", method: "POST", data: resource});
return (recovered as any).watermarked_video_url || (recovered as any).marked_url;
}
}
}
if (tsTasks.every(t => t.task_status === TaskStatuses.FAILED)) {
// retry
task_submitted = false;
} else if (tsTasks.every(t => isTaskFinished(t.task_status))) {
// all finished but still no usable url -> allow re-submit watermark task
task_submitted = false;
} else {
// read new status
let task_id = tsTasks.find(t => !isTaskFinished(t.task_status))?.task_id as string | undefined;