add exception handling

This commit is contained in:
Thephaseless 2024-10-18 13:55:32 +00:00
parent f0d72ef56b
commit 9e1faedb1a

11
main.py
View File

@ -6,7 +6,7 @@ import time
import uvicorn
import uvicorn.config
from fastapi import FastAPI
from fastapi import FastAPI, HTTPException
from fastapi.responses import RedirectResponse
from src.models.requests import LinkRequest, LinkResponse
@ -36,12 +36,15 @@ async def read_item(request: LinkRequest):
timeout = request.maxTimeout
if timeout == 0:
timeout = None
challenged = await asyncio.wait_for(bypass_cloudflare(page), timeout=timeout)
try:
challenged = await asyncio.wait_for(bypass_cloudflare(page), timeout=timeout)
except asyncio.TimeoutError as e:
await page.save_screenshot("errors/error.png")
raise HTTPException(detail="Timeout", status_code=408) from e
logger.info(f"Got webpage: {request.url}")
response = await LinkResponse.create(
response = LinkResponse.create(
page=page,
start_timestamp=start_time,
challenged=challenged,