update
This commit is contained in:
40
app/routers/download.py
Normal file
40
app/routers/download.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from fastapi import APIRouter, Request, HTTPException
|
||||
from fastapi.responses import JSONResponse
|
||||
from app.services.download_manager import DownloadManager
|
||||
|
||||
router = APIRouter(prefix="/download", tags=["download"])
|
||||
download_manager = DownloadManager()
|
||||
|
||||
@router.post("/")
|
||||
async def add_download(request: Request):
|
||||
data = await request.json()
|
||||
item_type = data.get("type")
|
||||
item_id = data.get("id")
|
||||
|
||||
if not item_type or not item_id:
|
||||
raise HTTPException(status_code=400, detail="Missing type or id")
|
||||
|
||||
task = download_manager.add_to_queue(item_type, item_id)
|
||||
return JSONResponse(task)
|
||||
|
||||
@router.get("/queue")
|
||||
async def get_queue():
|
||||
return download_manager.get_queue()
|
||||
|
||||
@router.post("/cancel/{task_id}")
|
||||
async def cancel_download(task_id: str):
|
||||
if download_manager.cancel_task(task_id):
|
||||
return {"status": "success", "message": "Task cancelled"}
|
||||
raise HTTPException(status_code=404, detail="Task not found")
|
||||
|
||||
@router.post("/pause/{task_id}")
|
||||
async def pause_download(task_id: str):
|
||||
if download_manager.pause_task(task_id):
|
||||
return {"status": "success", "message": "Task paused"}
|
||||
raise HTTPException(status_code=404, detail="Task not found")
|
||||
|
||||
@router.post("/resume/{task_id}")
|
||||
async def resume_download(task_id: str):
|
||||
if download_manager.resume_task(task_id):
|
||||
return {"status": "success", "message": "Task resumed"}
|
||||
raise HTTPException(status_code=404, detail="Task not found")
|
||||
Reference in New Issue
Block a user