fix(music-lab): VIDEO_DATA_DIR 기본값 통일 + lazy import 정리
- VIDEO_DATA_DIR 기본값을 /app/data/videos로 수정 (기존 /app/data에 videos 서브디렉토리를 중복 붙이던 버그 수정) - delete_project, export_project의 경로에서 중복된 "videos" 서브디렉토리 제거 - create_project 내부의 get_track_by_id lazy import를 파일 상단 import 블록으로 이동
This commit is contained in:
@@ -10,7 +10,7 @@ from pydantic import BaseModel
|
||||
from .db import (
|
||||
init_db,
|
||||
create_task, get_task,
|
||||
get_all_tracks, add_track, delete_track, get_track_file_path, get_track_by_task_id,
|
||||
get_all_tracks, add_track, delete_track, get_track_file_path, get_track_by_task_id, get_track_by_id,
|
||||
update_track_duration, update_track_file_info, update_track_hash,
|
||||
get_all_lyrics, add_lyrics, update_lyrics, delete_lyrics,
|
||||
create_video_project, get_video_project, get_all_video_projects,
|
||||
@@ -39,7 +39,7 @@ app.add_middleware(
|
||||
)
|
||||
|
||||
MUSIC_DATA_DIR = "/app/data"
|
||||
VIDEO_DATA_DIR = os.getenv("VIDEO_DATA_DIR", "/app/data")
|
||||
VIDEO_DATA_DIR = os.getenv("VIDEO_DATA_DIR", "/app/data/videos")
|
||||
|
||||
|
||||
def _get_mp3_duration(file_path: str) -> Optional[int]:
|
||||
@@ -712,7 +712,6 @@ class RevenueUpdate(BaseModel):
|
||||
|
||||
@app.post("/api/music/video-project", status_code=201)
|
||||
def create_project(req: VideoProjectCreate, background_tasks: BackgroundTasks):
|
||||
from .db import get_track_by_id
|
||||
if not get_track_by_id(req.track_id):
|
||||
raise HTTPException(status_code=404, detail="Track not found")
|
||||
if req.format not in ("visualizer", "slideshow"):
|
||||
@@ -753,7 +752,7 @@ def export_project(project_id: int):
|
||||
raise HTTPException(status_code=404, detail="Project not found")
|
||||
if proj["status"] != "done":
|
||||
raise HTTPException(status_code=400, detail=f"렌더링 미완료 (status: {proj['status']})")
|
||||
meta_path = os.path.join(VIDEO_DATA_DIR, "videos", str(project_id), "metadata.json")
|
||||
meta_path = os.path.join(VIDEO_DATA_DIR, str(project_id), "metadata.json")
|
||||
metadata = {}
|
||||
if os.path.exists(meta_path):
|
||||
with open(meta_path, encoding="utf-8") as f:
|
||||
@@ -774,7 +773,7 @@ def export_project(project_id: int):
|
||||
def delete_project(project_id: int):
|
||||
if not get_video_project(project_id):
|
||||
raise HTTPException(status_code=404, detail="Project not found")
|
||||
out_dir = os.path.join(VIDEO_DATA_DIR, "videos", str(project_id))
|
||||
out_dir = os.path.join(VIDEO_DATA_DIR, str(project_id))
|
||||
if os.path.isdir(out_dir):
|
||||
shutil.rmtree(out_dir, ignore_errors=True)
|
||||
delete_video_project(project_id)
|
||||
|
||||
Reference in New Issue
Block a user