mirror of
https://github.com/mastodon/mastodon.git
synced 2024-10-20 01:31:38 +09:00
23 lines
787 B
Ruby
23 lines
787 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Paperclip
|
||
|
module MediaTypeSpoofDetectorExtensions
|
||
|
def calculated_content_type
|
||
|
return @calculated_content_type if defined?(@calculated_content_type)
|
||
|
|
||
|
@calculated_content_type = type_from_file_command.chomp
|
||
|
|
||
|
# The `file` command fails to recognize some MP3 files as such
|
||
|
@calculated_content_type = type_from_marcel if @calculated_content_type == 'application/octet-stream' && type_from_marcel == 'audio/mpeg'
|
||
|
@calculated_content_type
|
||
|
end
|
||
|
|
||
|
def type_from_marcel
|
||
|
@type_from_marcel ||= Marcel::MimeType.for Pathname.new(@file.path),
|
||
|
name: @file.path
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
Paperclip::MediaTypeSpoofDetector.prepend(Paperclip::MediaTypeSpoofDetectorExtensions)
|