From 9b13bec296a606a8601d0abaf5fc4b3f97220076 Mon Sep 17 00:00:00 2001 From: Dylan Knutson Date: Wed, 20 Aug 2025 15:00:54 +0000 Subject: [PATCH] media not found fixes, rename unused enum --- app/jobs/domain/post_file_thumbnail_job.rb | 1 + app/lib/loaded_media.rb | 3 +++ app/lib/loaded_media/static_image.rb | 6 ++++++ .../20250820145726_rename_fa_user_post_fav_type_enum.rb | 7 +++++++ db/structure.sql | 9 +++++---- 5 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 db/migrate/20250820145726_rename_fa_user_post_fav_type_enum.rb diff --git a/app/jobs/domain/post_file_thumbnail_job.rb b/app/jobs/domain/post_file_thumbnail_job.rb index aa966728..177d2c33 100644 --- a/app/jobs/domain/post_file_thumbnail_job.rb +++ b/app/jobs/domain/post_file_thumbnail_job.rb @@ -2,6 +2,7 @@ class Domain::PostFileThumbnailJob < Scraper::JobBase queue_as :thumbnails discard_on Vips::Error + retry_on LoadedMedia::FileNotFound sig { override.returns(Symbol) } def self.http_factory_method diff --git a/app/lib/loaded_media.rb b/app/lib/loaded_media.rb index c23d44ec..a778cf5d 100644 --- a/app/lib/loaded_media.rb +++ b/app/lib/loaded_media.rb @@ -6,6 +6,9 @@ class LoadedMedia extend T::Helpers abstract! + class FileNotFound < StandardError + end + sig do params(content_type: String, media_path: String).returns( T.nilable(LoadedMedia), diff --git a/app/lib/loaded_media/static_image.rb b/app/lib/loaded_media/static_image.rb index 252e35b8..dfff3884 100644 --- a/app/lib/loaded_media/static_image.rb +++ b/app/lib/loaded_media/static_image.rb @@ -5,6 +5,12 @@ class LoadedMedia::StaticImage < LoadedMedia sig { params(media_path: String).void } def initialize(media_path) @vips_image = T.let(Vips::Image.new_from_file(media_path), Vips::Image) + rescue Vips::Error => e + if e.message.include?("does not exist") + raise LoadedMedia::FileNotFound.new(e) + end + + raise end sig { override.returns(Integer) } diff --git a/db/migrate/20250820145726_rename_fa_user_post_fav_type_enum.rb b/db/migrate/20250820145726_rename_fa_user_post_fav_type_enum.rb new file mode 100644 index 00000000..4c0f93a6 --- /dev/null +++ b/db/migrate/20250820145726_rename_fa_user_post_fav_type_enum.rb @@ -0,0 +1,7 @@ +class RenameFaUserPostFavTypeEnum < ActiveRecord::Migration[7.2] + def up + execute <<-SQL + ALTER TYPE domain_user_post_fav_type RENAME VALUE 'Domain::UserPostFav::FaUserPostFav' TO 'Domain::UserPostFav::FaUserPostFav_INVALID' + SQL + end +end diff --git a/db/structure.sql b/db/structure.sql index 769c230b..93d325c0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1,4 +1,4 @@ -\restrict aPpsXuEdX9tzHTE6ehm7KJzJ68I4JRZwxT9c4Yxb7h7LBSCM3b4TJPJHoQTvG10 +\restrict huxfo3NM6M7Nj4JUdHDWXGq7DoLnw9sDIrV5g3aVIBWghR5vgItCQUJG6cJ3EJf -- Dumped from database version 17.6 (Debian 17.6-1.pgdg13+1) -- Dumped by pg_dump version 17.6 (Debian 17.6-1.pgdg12+1) @@ -152,7 +152,7 @@ CREATE TYPE public.domain_post_type AS ENUM ( CREATE TYPE public.domain_user_post_fav_type AS ENUM ( 'Domain::UserPostFav', - 'Domain::UserPostFav::FaUserPostFav' + 'Domain::UserPostFav::FaUserPostFav_INVALID' ); @@ -3917,7 +3917,7 @@ CREATE UNIQUE INDEX idx_domain_posts_on_sofurry_id ON public.domain_posts USING -- Name: idx_domain_user_post_favs_on_fav_id; Type: INDEX; Schema: public; Owner: - -- -CREATE UNIQUE INDEX idx_domain_user_post_favs_on_fav_id ON public.domain_user_post_favs USING btree ((((json_attributes ->> 'fav_id'::text))::integer)) WHERE (type = 'Domain::UserPostFav::FaUserPostFav'::public.domain_user_post_fav_type); +CREATE UNIQUE INDEX idx_domain_user_post_favs_on_fav_id ON public.domain_user_post_favs USING btree ((((json_attributes ->> 'fav_id'::text))::integer)) WHERE (type = 'Domain::UserPostFav::FaUserPostFav_INVALID'::public.domain_user_post_fav_type); -- @@ -6092,11 +6092,12 @@ ALTER TABLE ONLY public.domain_twitter_tweets -- PostgreSQL database dump complete -- -\unrestrict aPpsXuEdX9tzHTE6ehm7KJzJ68I4JRZwxT9c4Yxb7h7LBSCM3b4TJPJHoQTvG10 +\unrestrict huxfo3NM6M7Nj4JUdHDWXGq7DoLnw9sDIrV5g3aVIBWghR5vgItCQUJG6cJ3EJf SET search_path TO "$user", public; INSERT INTO "schema_migrations" (version) VALUES +('20250820145726'), ('20250819012459'), ('20250819001506'), ('20250818235935'),