From a6fd44c69789f2e7877a93b68e40df7e975fb51c Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 8 Apr 2026 09:19:47 +0900 Subject: [PATCH] =?UTF-8?q?fix(music-lab):=20DB=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=ED=95=A8=EC=88=98=20=EC=97=B0=EA=B2=B0=20?= =?UTF-8?q?=E2=80=94=20=EC=BB=A4=EB=B2=84=EC=9D=B4=EB=AF=B8=EC=A7=80/WAV/?= =?UTF-8?q?=EC=8A=A4=ED=85=9C/=EB=B9=84=EB=94=94=EC=98=A4=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=20=EC=98=81=EA=B5=AC=20=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- music-lab/app/suno_provider.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/music-lab/app/suno_provider.py b/music-lab/app/suno_provider.py index 8f8ccb4..005924e 100644 --- a/music-lab/app/suno_provider.py +++ b/music-lab/app/suno_provider.py @@ -10,7 +10,11 @@ import logging import requests from typing import Optional -from .db import update_task, add_track +from .db import ( + update_task, add_track, + update_track_cover_images, update_track_wav_url, + update_track_video_url, update_track_stem_urls, +) logger = logging.getLogger(__name__) @@ -581,6 +585,8 @@ def run_cover_image(task_id: str, params: dict) -> None: elif isinstance(img, dict): image_urls.append(img.get("imageUrl") or img.get("image_url", "")) update_task(task_id, "succeeded", 100, "커버 이미지 생성 완료", audio_url=json.dumps(image_urls)) + if params.get("track_id") and image_urls: + update_track_cover_images(params["track_id"], image_urls) except Exception as e: logger.exception("Cover image generation error for task %s", task_id) update_task(task_id, "failed", 0, "", error=str(e)) @@ -615,6 +621,8 @@ def run_wav_convert(task_id: str, params: dict) -> None: wav_url = body.get("data", {}).get("audioWavUrl", "") if wav_url: update_task(task_id, "succeeded", 100, "WAV 변환 완료 (캐시)", audio_url=wav_url) + if params.get("track_id") and wav_url: + update_track_wav_url(params["track_id"], wav_url) return if resp.status_code != 200: @@ -645,6 +653,8 @@ def run_wav_convert(task_id: str, params: dict) -> None: wav_url = response.get("audioWavUrl", "") update_task(task_id, "succeeded", 100, "WAV 변환 완료", audio_url=wav_url) + if params.get("track_id") and wav_url: + update_track_wav_url(params["track_id"], wav_url) except Exception as e: logger.exception("WAV convert error for task %s", task_id) @@ -711,6 +721,8 @@ def run_stem_split(task_id: str, params: dict) -> None: update_task(task_id, "succeeded", 100, "12스템 분리 완료", audio_url=json.dumps(stems)) + if params.get("track_id") and stems: + update_track_stem_urls(params["track_id"], stems) except Exception as e: logger.exception("Stem split error for task %s", task_id) @@ -1030,6 +1042,8 @@ def run_video_generate(task_id: str, params: dict) -> None: video_url = response.get("video_url") or response.get("videoUrl", "") update_task(task_id, "succeeded", 100, "뮤직비디오 생성 완료", audio_url=video_url) + if params.get("track_id") and video_url: + update_track_video_url(params["track_id"], video_url) except Exception as e: logger.exception("Video generate error for task %s", task_id)