Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Claus <thorstenclaus@web.de>2022-06-28 22:22:29 +0300
committerThorsten Claus <thorstenclaus@web.de>2022-07-01 14:50:01 +0300
commit492ac74819cd7efc2c92bfb948f7083095dac384 (patch)
tree8ca48c488de1472623f9eb61f9e6a32c5e6f6504 /app/uploaders
parent1b2270572b7de768d8e8a67cf0017a01a275f3c8 (diff)
Issue #8355: Adding webp as supported file format
Converting all uploaded images to the webp format.
Diffstat (limited to 'app/uploaders')
-rw-r--r--app/uploaders/processed_image.rb2
-rw-r--r--app/uploaders/unprocessed_image.rb22
2 files changed, 19 insertions, 5 deletions
diff --git a/app/uploaders/processed_image.rb b/app/uploaders/processed_image.rb
index 79b61b9c7..5dfa6e5f0 100644
--- a/app/uploaders/processed_image.rb
+++ b/app/uploaders/processed_image.rb
@@ -12,7 +12,7 @@ class ProcessedImage < CarrierWave::Uploader::Base
end
def extension_allowlist
- %w[jpg jpeg png gif]
+ %w[jpg jpeg png gif webp]
end
def filename
diff --git a/app/uploaders/unprocessed_image.rb b/app/uploaders/unprocessed_image.rb
index 6dad5f602..558202e3e 100644
--- a/app/uploaders/unprocessed_image.rb
+++ b/app/uploaders/unprocessed_image.rb
@@ -18,20 +18,34 @@ class UnprocessedImage < CarrierWave::Uploader::Base
end
def extension_allowlist
- %w[jpg jpeg png gif]
+ %w[jpg jpeg png gif webp]
end
def filename
- model.random_string + File.extname(@filename) if @filename
+ model.random_string + extension if @filename
+ end
+
+ def extension
+ needs_converting? ? ".webp" : File.extname(@filename)
+ end
+
+ def needs_converting?
+ extname = File.extname(@filename)
+ %w[.webp .gif].exclude?(extname)
end
process :basic_process
def basic_process
manipulate! do |img|
- img.auto_orient
- img.strip if strip_exif
+ img.combine_options do |i|
+ i.auto_orient
+ i.strip if strip_exif
+ end
+
img = yield(img) if block_given?
+
+ img.format("webp") if needs_converting?
img
end
end