logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 85fce04d1b4353c3645c15967d222cdcdb488dfd
parent: 4fb95c91fbf808bafa581b8976d94ec36eee8619
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Sun,  5 Mar 2017 22:55:24 +0100

Detect videos with no sound, handle them like gifv

Diffstat:

Mapp/models/media_attachment.rb2+-
Mconfig/application.rb1+
Alib/paperclip/video_transcoder.rb14++++++++++++++
3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb @@ -80,7 +80,7 @@ class MediaAttachment < ApplicationRecord if f.file_content_type == 'image/gif' [:gif_transcoder] elsif VIDEO_MIME_TYPES.include? f.file_content_type - [:transcoder] + [:video_transcoder] else [:thumbnail] end diff --git a/config/application.rb b/config/application.rb @@ -8,6 +8,7 @@ Bundler.require(*Rails.groups) require_relative '../app/lib/exceptions' require_relative '../lib/paperclip/gif_transcoder' +require_relative '../lib/paperclip/video_transcoder' Dotenv::Railtie.load diff --git a/lib/paperclip/video_transcoder.rb b/lib/paperclip/video_transcoder.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Paperclip + # This transcoder is only to be used for the MediaAttachment model + # to check when uploaded videos are actually gifv's + class VideoTranscoder < Paperclip::Processor + def make + meta = ::Av.cli.identify(@file.path) + attachment.instance.type = MediaAttachment.types[:gifv] unless meta[:audio_encode] + + Paperclip::Transcoder.make(file, options, attachment) + end + end +end