forked from fedi/mastodon
caf5b8e975
before. In the API, attachments now can be either image, video or gifv. Gifv is to be treated like images in terms of behaviour, but are videos by file type.
22 lines
659 B
Ruby
22 lines
659 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Paperclip
|
|
# This transcoder is only to be used for the MediaAttachment model
|
|
# to convert animated gifs to webm
|
|
class GifTranscoder < Paperclip::Processor
|
|
def make
|
|
num_frames = identify('-format %n :file', file: file.path).to_i
|
|
|
|
return file unless options[:style] == :original && num_frames > 1
|
|
|
|
final_file = Paperclip::Transcoder.make(file, options, attachment)
|
|
|
|
attachment.instance.file_file_name = 'media.webm'
|
|
attachment.instance.file_content_type = 'video/webm'
|
|
attachment.instance.type = MediaAttachment.types[:gifv]
|
|
|
|
final_file
|
|
end
|
|
end
|
|
end
|