38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from fastapi import APIRouter, BackgroundTasks
|
|
from backend.services.crawler_service import crawler_service
|
|
from backend.utils.common import make_response
|
|
from backend.schemas.schemas import AutoMapRequest, AutoProcessRequest, TextSearchRequest
|
|
|
|
router = APIRouter(prefix="/api/v3", tags=["V3 Service"])
|
|
|
|
@router.post("/add_task")
|
|
async def add_task(req: AutoMapRequest):
|
|
try:
|
|
res = crawler_service.map_site(req.url)
|
|
return make_response(1, res.pop("msg", "Started"), res)
|
|
except Exception as e:
|
|
return make_response(0, str(e))
|
|
|
|
@router.post("/process_task")
|
|
async def auto_process(req: AutoProcessRequest, bg_tasks: BackgroundTasks):
|
|
try:
|
|
bg_tasks.add_task(crawler_service.process_queue, req.task_id, req.batch_size)
|
|
return make_response(1, "Background processing started", {"task_id": req.task_id})
|
|
except Exception as e:
|
|
return make_response(0, str(e))
|
|
|
|
@router.post("/task_status")
|
|
async def get_task_status(req):
|
|
try:
|
|
res = crawler_service.get_task_status(req.task_id)
|
|
return make_response(1, res.pop("msg", "Success"), res)
|
|
except Exception as e:
|
|
return make_response(0, str(e))
|
|
pass
|
|
@router.post("/search")
|
|
async def search_smart(req: TextSearchRequest):
|
|
try:
|
|
res = crawler_service.search(req.query, req.task_id, req.return_num)
|
|
return make_response(1, res.pop("msg", "Success"), res)
|
|
except Exception as e:
|
|
return make_response(0, str(e)) |