From 2910996feb142e8edff123d5caee71f39df1df6e Mon Sep 17 00:00:00 2001 From: Bianca Nenciu Date: Thu, 12 Nov 2020 02:22:38 +0200 Subject: [PATCH] FIX: Do not optimize uploaded custom emoji (#11203) Animated emojis were converted to static images. This commit moves the responsability on site admins to optimize their animated emojis before uploading them (gifsicle is no longer used). --- lib/upload_creator.rb | 2 ++ spec/lib/upload_creator_spec.rb | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/upload_creator.rb b/lib/upload_creator.rb index 8174be1b7ea..1b37f47e79c 100644 --- a/lib/upload_creator.rb +++ b/lib/upload_creator.rb @@ -371,6 +371,8 @@ class UploadCreator end def should_crop? + return false if @opts[:type] == 'custom_emoji' && animated?(@file) + TYPES_TO_CROP.include?(@opts[:type]) end diff --git a/spec/lib/upload_creator_spec.rb b/spec/lib/upload_creator_spec.rb index 8528a10087c..f1f0787737f 100644 --- a/spec/lib/upload_creator_spec.rb +++ b/spec/lib/upload_creator_spec.rb @@ -443,6 +443,21 @@ RSpec.describe UploadCreator do end end end + + context 'custom emojis' do + let(:animated_filename) { "animated.gif" } + let(:animated_file) { file_from_fixtures(animated_filename) } + + it 'should not be cropped if animated' do + upload = UploadCreator.new(animated_file, animated_filename, + force_optimize: true, + type: 'custom_emoji' + ).create_for(user.id) + + expect(upload.animated).to eq(true) + expect(FastImage.size(Discourse.store.path_for(upload))).to eq([320, 320]) + end + end end describe '#clean_svg!' do