From cbe627b01adf5c6ee22c4fd886e3db560354cc31 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Thu, 27 Aug 2015 14:56:25 -0700 Subject: [PATCH] fixes #2494: Twitter bookmarklet: support uploading video --- app/assets/stylesheets/common/000_vars.css.scss | 2 +- app/assets/stylesheets/specific/comments.css.scss | 4 ++-- app/assets/stylesheets/specific/mod_queue.css.scss | 4 ++-- app/assets/stylesheets/specific/posts.css.scss | 4 ++-- app/logical/sources/strategies/twitter.rb | 2 +- app/logical/twitter_service.rb | 8 +++++++- app/models/upload.rb | 2 +- app/presenters/post_presenter.rb | 2 +- 8 files changed, 17 insertions(+), 11 deletions(-) diff --git a/app/assets/stylesheets/common/000_vars.css.scss b/app/assets/stylesheets/common/000_vars.css.scss index a4d1f2b64..203985f24 100644 --- a/app/assets/stylesheets/common/000_vars.css.scss +++ b/app/assets/stylesheets/common/000_vars.css.scss @@ -77,7 +77,7 @@ $preview_flagged_color: #F00; text-align: center; } -@mixin audio-icon { +@mixin sound-icon { content: "♪"; position: absolute; width: 20px; diff --git a/app/assets/stylesheets/specific/comments.css.scss b/app/assets/stylesheets/specific/comments.css.scss index b02f27ee9..72debd349 100644 --- a/app/assets/stylesheets/specific/comments.css.scss +++ b/app/assets/stylesheets/specific/comments.css.scss @@ -108,12 +108,12 @@ div#c-comments { } } - &[data-has-audio=true] { + &[data-has-sound=true] { div.preview { position: relative; &:before { - @include audio-icon; + @include sound-icon; } } } diff --git a/app/assets/stylesheets/specific/mod_queue.css.scss b/app/assets/stylesheets/specific/mod_queue.css.scss index 538537d89..1a96ac28c 100644 --- a/app/assets/stylesheets/specific/mod_queue.css.scss +++ b/app/assets/stylesheets/specific/mod_queue.css.scss @@ -35,9 +35,9 @@ div#c-moderator-post-queues { } } - &[data-has-audio=true] { + &[data-has-sound=true] { aside:before { - @include audio-icon; + @include sound-icon; } } } diff --git a/app/assets/stylesheets/specific/posts.css.scss b/app/assets/stylesheets/specific/posts.css.scss index e92639b62..189a5c250 100644 --- a/app/assets/stylesheets/specific/posts.css.scss +++ b/app/assets/stylesheets/specific/posts.css.scss @@ -30,8 +30,8 @@ article.post-preview { @include animated-icon; } - &[data-has-audio=true]:before { - @include audio-icon; + &[data-has-sound=true]:before { + @include sound-icon; } } diff --git a/app/logical/sources/strategies/twitter.rb b/app/logical/sources/strategies/twitter.rb index b9f796342..c73a0c8e4 100644 --- a/app/logical/sources/strategies/twitter.rb +++ b/app/logical/sources/strategies/twitter.rb @@ -25,7 +25,7 @@ module Sources::Strategies attrs = TwitterService.new.client.status(status_id).attrs @artist_name = attrs[:user][:name] @profile_url = "https://twitter.com/" + attrs[:user][:screen_name] - @image_url = attrs[:entities][:media][0][:media_url] + ":orig" + @image_url = image_urls.first @artist_commentary_title = "" @artist_commentary_desc = attrs[:text] end diff --git a/app/logical/twitter_service.rb b/app/logical/twitter_service.rb index 1b793e4d5..fa0e317d5 100644 --- a/app/logical/twitter_service.rb +++ b/app/logical/twitter_service.rb @@ -24,7 +24,13 @@ class TwitterService urls << obj[:media_url] + ":orig" end attrs[:extended_entities][:media].each do |obj| - urls << obj[:media_url] + ":orig" + if obj[:video_info] + largest = obj[:video_info][:variants].select {|x| x[:url] =~ /\.mp4$/}.max_by {|x| x[:bitrate]} + urls.clear + urls << largest[:url] if largest + else + urls << obj[:media_url] + ":orig" + end end urls.uniq rescue diff --git a/app/models/upload.rb b/app/models/upload.rb index 1a5d02c16..a743a5db5 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -87,7 +87,7 @@ class Upload < ActiveRecord::Base def tag_audio if is_video? && video.audio_channels.present? - self.tag_string = "#{tag_string} audio" + self.tag_string = "#{tag_string} video_with_sound" end end diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index 5e8e200ec..d15985e4d 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -68,7 +68,7 @@ class PostPresenter < Presenter def self.data_attributes(post) %{ data-id="#{post.id}" - data-has-audio="#{post.has_tag?('audio')}" + data-has-sound="#{post.has_tag?('video_with_sound|flash_with_sound')}" data-tags="#{h(post.tag_string)}" data-pools="#{post.pool_string}" data-uploader="#{h(post.uploader_name)}"