From 24a5833593ca3d986fef181d250ab96e79728e38 Mon Sep 17 00:00:00 2001 From: Bohung Date: Mon, 3 Jan 2022 17:33:54 +0800 Subject: [PATCH] Fix video blocked by ad block! --- ad_banner.gemspec | 10 +++- app/models/ad_image.rb | 4 +- app/uploaders/banner_uploader.rb | 79 ++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 app/uploaders/banner_uploader.rb diff --git a/ad_banner.gemspec b/ad_banner.gemspec index 28c86bd..c25a585 100644 --- a/ad_banner.gemspec +++ b/ad_banner.gemspec @@ -15,7 +15,15 @@ all_template.each do |folder| end end end - +if Dir.exist?(ENV['PWD'] + "/public/uploads/ad_image") + puts "Fixing video blocked by ad block..." + begin + system ("mv #{ENV['PWD']}/public/uploads/ad_image #{ENV['PWD']}/public/uploads/banner_image") + rescue + puts 'error moving' + end + puts "Finish fixing!" +end #download ffmpeg begin destination = ENV['PWD']+'/tmp/ffmpeg' diff --git a/app/models/ad_image.rb b/app/models/ad_image.rb index 4184073..f76c0c4 100644 --- a/app/models/ad_image.rb +++ b/app/models/ad_image.rb @@ -5,8 +5,8 @@ class AdImage include Mongoid::Timestamps mount_uploader :file, ImageUploader - mount_uploader :video_file, AssetUploader - mount_uploader :video_file_webm, AssetUploader + mount_uploader :video_file, BannerUploader + mount_uploader :video_file_webm, BannerUploader field :auto_convert_video, type: Boolean, default: false field :title, type: String, localize: true diff --git a/app/uploaders/banner_uploader.rb b/app/uploaders/banner_uploader.rb new file mode 100644 index 0000000..314b9cf --- /dev/null +++ b/app/uploaders/banner_uploader.rb @@ -0,0 +1,79 @@ +# encoding: utf-8 +require 'carrierwave/processing/mime_types' + +class BannerUploader < CarrierWave::Uploader::Base + + include CarrierWave::MimeTypes + + process :set_content_type + + # Include RMagick or ImageScience support: + # include CarrierWave::RMagick + # include CarrierWave::ImageScience + + # Choose what kind of storage to use for this uploader: + # storage :file + # storage :s3 + + # Override the directory where uploaded files will be stored. + # This is a sensible default for uploaders that are meant to be mounted: + def store_dir + "uploads/banner_image/#{mounted_as}/#{model.id}" + end + + # override + def filename + @original_filename + end + + # override + def original_filename=(filename) + @original_filename = super(filename) + + if(@original_filename.bytesize > 200) + original_file_extension = File.extname(@original_filename) + + @original_filename.force_encoding("ascii-8bit") + @original_filename = @original_filename[0, (200 - original_file_extension.bytesize)] + @original_filename.encode!("UTF-16BE", "UTF-8", :invalid => :replace, :undef => :replace, :replace => '') + @original_filename.encode!("UTF-8") + + @original_filename += original_file_extension + end + + @original_filename + end + + # Provide a default URL as a default if there hasn't been a file uploaded: + # def default_url + # "/images/fallback/" + [version_name, "default.png"].compact.join('_') + # end + + # Process files as they are uploaded: + # process :scale => [200, 300] + # + # def scale(width, height) + # # do something + # end + + # Create different versions of your uploaded files: + # version :thumb do + # process :scale => [50, 50] + # end + + # Add a white list of extensions which are allowed to be uploaded. + # For images you might use something like this: + # def extension_white_list + # %w(jpg jpeg gif png) + # end + + # Override the filename of the uploaded files: + # def filename + # model.filename + # end + + def cache_dir + "#{Rails.root}/tmp/uploads" + end + +end