Spaces:
Sleeping
Sleeping
Update app/routers/screenshot/screenshot.py
Browse filesTest file streaming for speed up and reuse instance
app/routers/screenshot/screenshot.py
CHANGED
@@ -5,7 +5,7 @@ import logging
|
|
5 |
from core.service.playwright import AsyncPlaywrightContext, TimeoutError
|
6 |
from core.service.playwright.models import PageModel, ScreenshotModel
|
7 |
from fastapi import APIRouter, HTTPException
|
8 |
-
from fastapi.responses import Response
|
9 |
|
10 |
router = APIRouter()
|
11 |
playwright_context = AsyncPlaywrightContext()
|
@@ -20,11 +20,11 @@ async def screenshot(
|
|
20 |
async with playwright_context as sc:
|
21 |
try:
|
22 |
response = await sc.screenshot(screenshot_model=screenshot_model, page_model=page_model)
|
23 |
-
return
|
24 |
except TimeoutError as e:
|
25 |
status_code = 504 if isinstance(e, TimeoutError) else 400
|
26 |
detail = f"An error occurred while generating the screenshot: {e}"
|
27 |
raise HTTPException(status_code=status_code, detail=detail) from e
|
28 |
except Exception as e:
|
29 |
logging.exception("Unhandled error in screenshot generation")
|
30 |
-
raise HTTPException(status_code=500, detail="An unexpected error occurred") from e
|
|
|
5 |
from core.service.playwright import AsyncPlaywrightContext, TimeoutError
|
6 |
from core.service.playwright.models import PageModel, ScreenshotModel
|
7 |
from fastapi import APIRouter, HTTPException
|
8 |
+
from fastapi.responses import Response, StreamingResponse
|
9 |
|
10 |
router = APIRouter()
|
11 |
playwright_context = AsyncPlaywrightContext()
|
|
|
20 |
async with playwright_context as sc:
|
21 |
try:
|
22 |
response = await sc.screenshot(screenshot_model=screenshot_model, page_model=page_model)
|
23 |
+
return StreamingResponse(content=response, media_type="image/png")
|
24 |
except TimeoutError as e:
|
25 |
status_code = 504 if isinstance(e, TimeoutError) else 400
|
26 |
detail = f"An error occurred while generating the screenshot: {e}"
|
27 |
raise HTTPException(status_code=status_code, detail=detail) from e
|
28 |
except Exception as e:
|
29 |
logging.exception("Unhandled error in screenshot generation")
|
30 |
+
raise HTTPException(status_code=500, detail="An unexpected error occurred") from e
|