X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=perl%2FSesse%2Fpr0n%2FImage.pm;fp=perl%2FSesse%2Fpr0n%2FImage.pm;h=13d9ee5e3ae488d6cf7f9393fa589240c34ab0d5;hb=84460e4c9e238c3f3b661756796f764df2441aaa;hp=f12a15891792ed1ba0e195e815c4c157df2d1b29;hpb=98da70a27673e32530c404401d3e2c6dff3fcde4;p=pr0n diff --git a/perl/Sesse/pr0n/Image.pm b/perl/Sesse/pr0n/Image.pm index f12a158..13d9ee5 100644 --- a/perl/Sesse/pr0n/Image.pm +++ b/perl/Sesse/pr0n/Image.pm @@ -58,16 +58,20 @@ sub handler { $dbwidth = $ref->{'width'}; $dbheight = $ref->{'height'}; + my $res = Plack::Response->new(200); + # Scale if we need to do so my ($fname, $mime_type); if ($infobox) { ($fname, $mime_type) = Sesse::pr0n::Common::ensure_infobox_cached($r, $filename, $id, $dbwidth, $dbheight, $dpr, $xres, $yres); } else { - ($fname, $mime_type) = Sesse::pr0n::Common::ensure_cached($r, $filename, $id, $dbwidth, $dbheight, $xres, $yres); + my $accept = $r->header('Accept'); + my $avif_ok = (defined($accept) && $accept =~ /(^|,)image\/avif($|,|;)/); + ($fname, $mime_type) = Sesse::pr0n::Common::ensure_cached($r, $avif_ok, $filename, $id, $dbwidth, $dbheight, $xres, $yres); + $res->header('Vary' => 'Accept'); } # Output the image to the user - my $res = Plack::Response->new(200); if (!defined($mime_type)) { $mime_type = Sesse::pr0n::Common::get_mimetype_from_filename($filename);