# -*- coding:utf-8 -*- # POST /api/submit - 提交KTV交付质检任务 import json import uuid from ahserver.serverenv import ServerEnv method = request.method if method == "POST": mtv_path = params_kw.get("mtv_path", "") ktv_path = params_kw.get("ktv_path", "") ass_path = params_kw.get("ass_path", "") lyrics_path = params_kw.get("lyrics_path", "") calibrated_path = params_kw.get("calibrated_path", "") original_duration = params_kw.get("original_duration", 0) if not any([mtv_path, ktv_path]): return json.dumps({"error": "至少需要提供mtv_path或ktv_path"}, ensure_ascii=False) task_id = params_kw.get("task_id", str(uuid.uuid4()).replace("-", "")[:12]) payload = { "task_type": "verify", "task_id": task_id, "mtv_path": mtv_path, "ktv_path": ktv_path, "ass_path": ass_path, "lyrics_path": lyrics_path, "calibrated_path": calibrated_path, "original_duration": float(original_duration) if original_duration else 0 } env = ServerEnv() longtasks = env.longtasks if longtasks is None: return json.dumps({"error": "service not ready"}, ensure_ascii=False) result = await longtasks.submit_task(payload) real_task_id = result.get("task_id", str(result)) if isinstance(result, dict) else str(result) return json.dumps({ "task_id": real_task_id, "status": "queued", "message": "质检任务已提交", "check_url": f"/api/task?task_id={real_task_id}" }, ensure_ascii=False) else: return json.dumps({ "usage": "POST with JSON body", "params": { "mtv_path": "string (optional, MTV视频路径)", "ktv_path": "string (optional, KTV视频路径)", "ass_path": "string (optional, ASS字幕路径)", "lyrics_path": "string (optional, 原始歌词路径)", "calibrated_path": "string (optional, calibrated.json路径)", "original_duration": "float (optional, 原曲时长秒)", "task_id": "string (optional, auto-generated)" } }, ensure_ascii=False)