diff --git a/app/controllers/blob_entries_controller.rb b/app/controllers/blob_entries_controller.rb index 039f2b00..d2490c4c 100644 --- a/app/controllers/blob_entries_controller.rb +++ b/app/controllers/blob_entries_controller.rb @@ -51,6 +51,18 @@ class BlobEntriesController < ApplicationController file_ext = "gif" end + # content-container may be pre-thumbnailed, see if the file is on the disk + if thumb == "content-container" && file_ext == "jpeg" + thumbnail_path = + Domain::PostFile::Thumbnail.absolute_file_path( + sha256, + "content_container", + 0, + ) + send_file(thumbnail_path, type: "image/jpeg", disposition: "inline") + return true + end + width, height = thumb_params filename = "thumb-#{sha256}-#{thumb}.#{file_ext}" cache_key = "vips:#{filename}" diff --git a/app/models/domain/post_file/thumbnail.rb b/app/models/domain/post_file/thumbnail.rb index 0b3fe8cd..83239ac2 100644 --- a/app/models/domain/post_file/thumbnail.rb +++ b/app/models/domain/post_file/thumbnail.rb @@ -72,6 +72,15 @@ class Domain::PostFile::Thumbnail < ReduxApplicationRecord return nil unless (post_file = self.post_file) return nil unless (sha256 = post_file.sha256) sha256_hex = HexUtil.bin2hex(sha256) + self.class.absolute_file_path(sha256_hex, thumb_type, T.must(self.frame)) + end + + sig do + params(sha256_hex: String, thumb_type: String, frame: Integer).returns( + T.nilable(String), + ) + end + def self.absolute_file_path(sha256_hex, thumb_type, frame) [ THUMB_ROOT_DIR, thumb_type.to_s, diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d06cb807..7135b762 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -12,7 +12,8 @@ window.MiniProfiler.patchesApplied = true; <% end %> - <%= favicon_link_tag "refurrer-logo-icon.png" %> + + <%= favicon_link_tag "refurrer-logo-icon.png", type: "image/png" %> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= javascript_pack_tag "application-bundle" %>