From aab1ddb1887ce49e7f533a1f4e9fe0f6aa839516 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 14 Aug 2025 20:56:50 +0200 Subject: image content type --- src/embed.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/embed.rs b/src/embed.rs index b7d44aa..b3342cd 100644 --- a/src/embed.rs +++ b/src/embed.rs @@ -68,23 +68,24 @@ pub async fn r_embed<'a>( } #[get("/v1/image?")] -pub async fn r_image(state: &State>, k: &str) -> MyResult { +pub async fn r_image(state: &State>, k: &str) -> MyResult { let info = state .config .ads .get(&k.to_owned()) .ok_or(anyhow!("ad does not exist"))?; - Ok(CachedFile( + Ok(CachedImage( File::open(state.config.ad_dir.join(&info.image)).await?, )) } -pub struct CachedFile(File); -impl<'r> Responder<'r, 'static> for CachedFile { +pub struct CachedImage(File); +impl<'r> Responder<'r, 'static> for CachedImage { fn respond_to(self, _req: &'r Request<'_>) -> response::Result<'static> { Response::build() .status(Status::Ok) .header(Header::new("cache-control", "max-age=3600, public")) + .header(Header::new("content-type", "image/webp")) .streamed_body(self.0) .ok() } -- cgit v1.2.3-70-g09d2