diff --git a/app/api/status.dspy b/app/api/status/index.dspy similarity index 100% rename from app/api/status.dspy rename to app/api/status/index.dspy diff --git a/app/api/submit.dspy b/app/api/submit.dspy deleted file mode 100644 index b09338d..0000000 --- a/app/api/submit.dspy +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -import json - -mtv_path = params.get("mtv_path", "") -ktv_path = params.get("ktv_path", "") -ass_path = params.get("ass_path", "") -lyrics_path = params.get("lyrics_path", "") -calibrated_path = params.get("calibrated_path", "") -original_duration = params.get("original_duration", 0) - -if not any([mtv_path, ktv_path]): - result = {"error": "至少需要提供mtv_path或ktv_path"} - return json.dumps(result, ensure_ascii=False) - -payload = { - "mtv_path": mtv_path, - "ktv_path": ktv_path, - "ass_path": ass_path, - "lyrics_path": lyrics_path, - "calibrated_path": calibrated_path, - "original_duration": original_duration -} - -task_id = longtasks.submit_task(payload) -result = { - "status": "submitted", - "task_id": task_id, - "message": "质检任务已提交,请用 /api/task?task_id=" + str(task_id) + " 查询结果" -} -return json.dumps(result, ensure_ascii=False, indent=2) diff --git a/app/api/submit/index.dspy b/app/api/submit/index.dspy new file mode 100644 index 0000000..42c469c --- /dev/null +++ b/app/api/submit/index.dspy @@ -0,0 +1,60 @@ +# -*- 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) diff --git a/app/api/task.dspy b/app/api/task.dspy deleted file mode 100644 index 5433b04..0000000 --- a/app/api/task.dspy +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -import json - -task_id = params.get("task_id", "") -if not task_id: - result = {"error": "缺少 task_id 参数"} - return json.dumps(result, ensure_ascii=False) - -status = longtasks.get_status(task_id) -result = longtasks.get_result(task_id) - -output = { - "task_id": task_id, - "status": status, - "result": result -} -return json.dumps(output, ensure_ascii=False, indent=2) diff --git a/app/api/task/index.dspy b/app/api/task/index.dspy new file mode 100644 index 0000000..9e3c295 --- /dev/null +++ b/app/api/task/index.dspy @@ -0,0 +1,17 @@ +# -*- coding:utf-8 -*- +# GET /api/task?task_id=xxx - 查询任务状态 + +import json +from ahserver.serverenv import ServerEnv + +task_id = params_kw.get("task_id", "") +if not task_id: + return json.dumps({"error": "task_id is required"}, ensure_ascii=False) + +env = ServerEnv() +longtasks = env.longtasks +if longtasks is None: + return json.dumps({"error": "service not ready"}, ensure_ascii=False) + +status = await longtasks.get_status(task_id) +return json.dumps(status) diff --git a/conf/config.json b/conf/config.json index 61efaf3..cc2c738 100644 --- a/conf/config.json +++ b/conf/config.json @@ -1,9 +1,16 @@ { + "password_key": "VerifyDeliveryService2026Key", + "databases": {}, + "session_redis": {"host": "127.0.0.1", "port": 6379, "db": 1}, "website": { - "processors": [[".dspy", "dspy"]], - "port": 9085, + "paths": [["$[workdir]$/app", ""]], "host": "0.0.0.0", - "static_paths": [], - "index_pages": ["index.dspy"] - } + "port": 9085, + "coding": "utf-8", + "indexes": ["index.html", "index.dspy"], + "processors": [[".dspy", "dspy"]], + "startswiths": [{"leading": "/idfile", "registerfunction": "idfile"}] + }, + "hot_reload": false, + "filesroot": "/tmp/verify-delivery-outputs" } diff --git a/start.sh b/start.sh old mode 100644 new mode 100755 diff --git a/stop.sh b/stop.sh old mode 100644 new mode 100755