From ef59ae88863dbe3245416e3b1fb3f6662acd9414 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Wed, 26 Aug 2015 13:54:14 -0700 Subject: [PATCH] enable audio for videos #2499 --- app/assets/stylesheets/common/000_vars.css.scss | 10 ++++++++++ app/assets/stylesheets/specific/posts.css.scss | 6 +++++- app/models/upload.rb | 6 +++--- app/presenters/post_presenter.rb | 1 + 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/common/000_vars.css.scss b/app/assets/stylesheets/common/000_vars.css.scss index 65374d0b1..a4d1f2b64 100644 --- a/app/assets/stylesheets/common/000_vars.css.scss +++ b/app/assets/stylesheets/common/000_vars.css.scss @@ -77,3 +77,13 @@ $preview_flagged_color: #F00; text-align: center; } +@mixin audio-icon { + content: "♪"; + position: absolute; + width: 20px; + height: 20px; + color: white; + background-color: rgba(0,0,0,0.5); + margin: 2px; + text-align: center; +} diff --git a/app/assets/stylesheets/specific/posts.css.scss b/app/assets/stylesheets/specific/posts.css.scss index 901f2f6f8..e92639b62 100644 --- a/app/assets/stylesheets/specific/posts.css.scss +++ b/app/assets/stylesheets/specific/posts.css.scss @@ -26,9 +26,13 @@ article.post-preview { margin: auto; } - &[data-tags~=animated]:before, &[data-file-ext=swf]:before, &[data-file-ext=webm]:before, &[data-file-ext=zip]:before { + &[data-tags~=animated]:before, &[data-file-ext=swf]:before, &[data-file-ext=webm]:before, &[data-file-ext=mp4]:before, &[data-file-ext=zip]:before { @include animated-icon; } + + &[data-has-audio=true]:before { + @include audio-icon; + } } #iqdb-similar { diff --git a/app/models/upload.rb b/app/models/upload.rb index e0c0c0c97..1a5d02c16 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -85,9 +85,9 @@ class Upload < ActiveRecord::Base end end - def validate_no_audio + def tag_audio if is_video? && video.audio_channels.present? - raise "video must not have audio channels" + self.tag_string = "#{tag_string} audio" end end @@ -112,7 +112,7 @@ class Upload < ActiveRecord::Base calculate_hash(file_path) validate_md5_uniqueness validate_md5_confirmation - validate_no_audio + tag_audio validate_video_duration calculate_file_size(file_path) if has_dimensions? diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index c1c1a13de..5e8e200ec 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -68,6 +68,7 @@ class PostPresenter < Presenter def self.data_attributes(post) %{ data-id="#{post.id}" + data-has-audio="#{post.has_tag?('audio')}" data-tags="#{h(post.tag_string)}" data-pools="#{post.pool_string}" data-uploader="#{h(post.uploader_name)}"