Files
Your Name ebf632e651 first
2026-04-16 21:35:47 +08:00

43 lines
1.6 KiB
Python

from fastapi import APIRouter, File, Form, UploadFile
from app.schemas.common import ApiResponse
from app.services.import_task_service import create_import_task, list_import_tasks, retry_import_task
from app.services.imports_service import get_import_summary
router = APIRouter(tags=["imports"])
@router.get("/imports/summary", response_model=ApiResponse)
def imports_summary() -> ApiResponse:
return ApiResponse(data=get_import_summary())
@router.get("/imports/tasks", response_model=ApiResponse)
def import_tasks() -> ApiResponse:
return ApiResponse(data=list_import_tasks())
@router.post("/imports/upload", response_model=ApiResponse)
async def upload_import(
file: UploadFile = File(...),
source_type: int = Form(default=7),
) -> ApiResponse:
content = await file.read()
task = create_import_task(content, file.filename or "domains.txt", source_type=source_type)
return ApiResponse(message="导入任务已创建", data=task)
@router.post("/imports/text", response_model=ApiResponse)
def upload_import_text(payload: dict) -> ApiResponse:
text = str(payload.get("text") or "")
filename = str(payload.get("filename") or "manual_domains.txt")
source_type = int(payload.get("source_type") or 6)
task = create_import_task(text.encode("utf-8"), filename, source_type=source_type)
return ApiResponse(message="文本导入任务已创建", data=task)
@router.post("/imports/tasks/{task_id}/retry", response_model=ApiResponse)
def import_task_retry(task_id: str) -> ApiResponse:
task = retry_import_task(task_id)
return ApiResponse(message="导入任务已重新加入队列", data=task)