Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: - app/models/media_attachment.rb Upstream added audio attachment support - app/serializers/initial_state_serializer.rb Upstream added audio attachment support and how mimetypes are returned - app/serializers/rest/instance_serializer.rb Upstream added a few fields - config/application.rb Upstream added a different paperclip transcoder
This commit is contained in:
@ -13,7 +13,7 @@ module Mastodon
|
||||
end
|
||||
|
||||
def patch
|
||||
0
|
||||
2
|
||||
end
|
||||
|
||||
def pre
|
||||
|
@ -1,23 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Paperclip
|
||||
class AudioTranscoder < Paperclip::Processor
|
||||
def make
|
||||
max_aud_len = (ENV['MAX_AUDIO_LENGTH'] || 60.0).to_f
|
||||
|
||||
meta = ::Av.cli.identify(@file.path)
|
||||
# {:length=>"0:00:02.14", :duration=>2.14, :audio_encode=>"mp3", :audio_bitrate=>"44100 Hz", :audio_channels=>"mono"}
|
||||
if meta[:duration] > max_aud_len
|
||||
raise Mastodon::ValidationError, "Audio uploads must be less than #{max_aud_len} seconds in length."
|
||||
end
|
||||
|
||||
final_file = Paperclip::Transcoder.make(file, options, attachment)
|
||||
|
||||
attachment.instance.file_file_name = 'media.mp4'
|
||||
attachment.instance.file_content_type = 'video/mp4'
|
||||
attachment.instance.type = MediaAttachment.types[:video]
|
||||
|
||||
final_file
|
||||
end
|
||||
end
|
||||
end
|
19
lib/paperclip/type_corrector.rb
Normal file
19
lib/paperclip/type_corrector.rb
Normal file
@ -0,0 +1,19 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'mime/types/columnar'
|
||||
|
||||
module Paperclip
|
||||
class TypeCorrector < Paperclip::Processor
|
||||
def make
|
||||
target_extension = options[:format]
|
||||
extension = File.extname(attachment.instance.file_file_name)
|
||||
|
||||
return @file unless options[:style] == :original && target_extension && extension != target_extension
|
||||
|
||||
attachment.instance.file_content_type = options[:content_type] || attachment.instance.file_content_type
|
||||
attachment.instance.file_file_name = File.basename(attachment.instance.file_file_name, '.*') + '.' + target_extension
|
||||
|
||||
@file
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user