diff --git a/app/models/photo.rb b/app/models/photo.rb index 0a77df62a..e9fbe5d20 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -38,6 +38,7 @@ class Photo < ApplicationRecord mount_uploader :processed_image, ProcessedImage mount_uploader :unprocessed_image, UnprocessedImage + attr_accessor :keep_original_format belongs_to :status_message, foreign_key: :status_message_guid, primary_key: :guid, optional: true validates_associated :status_message @@ -50,7 +51,6 @@ class Photo < ApplicationRecord after_commit on: :create do queue_processing_job if author.local? - end scope :on_statuses, ->(post_guids) { diff --git a/app/services/import_service.rb b/app/services/import_service.rb index cb6d02e3b..89e107452 100644 --- a/app/services/import_service.rb +++ b/app/services/import_service.rb @@ -74,6 +74,7 @@ class ImportService def store_and_process_photo(photo, uploaded_file, random_string) File.open(uploaded_file) do |file| photo.random_string = random_string + photo.keep_original_format = true photo.unprocessed_image.store! file photo.update_remote_path photo.save(touch: false) diff --git a/app/uploaders/unprocessed_image.rb b/app/uploaders/unprocessed_image.rb index 558202e3e..a653aa34f 100644 --- a/app/uploaders/unprocessed_image.rb +++ b/app/uploaders/unprocessed_image.rb @@ -31,7 +31,7 @@ class UnprocessedImage < CarrierWave::Uploader::Base def needs_converting? extname = File.extname(@filename) - %w[.webp .gif].exclude?(extname) + %w[.webp .gif].exclude?(extname) && !model.keep_original_format end process :basic_process