|
1 | 1 | import os
|
2 | 2 | import glob
|
| 3 | +import shutil |
| 4 | + |
3 | 5 | from fastapi import Request, Depends, Path, BackgroundTasks, UploadFile
|
4 | 6 | from fastapi.params import File
|
5 | 7 | from loguru import logger
|
|
9 | 11 | from app.controllers.v1.base import new_router
|
10 | 12 | from app.models.exception import HttpException
|
11 | 13 | from app.models.schema import TaskVideoRequest, TaskQueryResponse, TaskResponse, TaskQueryRequest, \
|
12 |
| - BgmUploadResponse, BgmRetrieveResponse |
| 14 | + BgmUploadResponse, BgmRetrieveResponse, TaskDeletionResponse |
13 | 15 | from app.services import task as tm
|
14 | 16 | from app.services import state as sm
|
15 | 17 | from app.utils import utils
|
@@ -75,6 +77,23 @@ def file_to_uri(file):
|
75 | 77 | raise HttpException(task_id=task_id, status_code=404, message=f"{request_id}: task not found")
|
76 | 78 |
|
77 | 79 |
|
| 80 | +@router.delete("/tasks/{task_id}", response_model=TaskDeletionResponse, summary="Delete a generated short video task") |
| 81 | +def create_video(request: Request, task_id: str = Path(..., description="Task ID")): |
| 82 | + request_id = base.get_task_id(request) |
| 83 | + task = sm.state.get_task(task_id) |
| 84 | + if task: |
| 85 | + tasks_dir = utils.task_dir() |
| 86 | + current_task_dir = os.path.join(tasks_dir, task_id) |
| 87 | + if os.path.exists(current_task_dir): |
| 88 | + shutil.rmtree(current_task_dir) |
| 89 | + |
| 90 | + sm.state.delete_task(task_id) |
| 91 | + logger.success(f"video deleted: {utils.to_json(task)}") |
| 92 | + return utils.get_response(200, task) |
| 93 | + |
| 94 | + raise HttpException(task_id=task_id, status_code=404, message=f"{request_id}: task not found") |
| 95 | + |
| 96 | + |
78 | 97 | @router.get("/musics", response_model=BgmRetrieveResponse, summary="Retrieve local BGM files")
|
79 | 98 | def get_bgm_list(request: Request):
|
80 | 99 | suffix = "*.mp3"
|
|
0 commit comments