20 lines
521 B
Python
20 lines
521 B
Python
from fastapi import APIRouter, Response
|
|
|
|
from server.services.covers import covers
|
|
|
|
router = APIRouter(prefix="/api/covers")
|
|
|
|
|
|
@router.get("/{digest}")
|
|
def cover(digest: str):
|
|
try:
|
|
data, media = covers.read(digest)
|
|
except RuntimeError as exc:
|
|
from fastapi import HTTPException
|
|
raise HTTPException(status_code=404, detail=str(exc)) from exc
|
|
return Response(
|
|
content=data,
|
|
media_type=media,
|
|
headers={"Cache-Control": "public, max-age=31536000, immutable"},
|
|
)
|