From e42881fbbf1980795e6a8aef5db1d73cacb5f6f9 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 15 Jan 2020 15:20:33 -0600 Subject: [PATCH] Fix #4262: Exception when using Twitter video image links. --- app/logical/sources/strategies/twitter.rb | 6 ++++-- test/unit/sources/twitter_test.rb | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/logical/sources/strategies/twitter.rb b/app/logical/sources/strategies/twitter.rb index f6d29c1d0..194e11664 100644 --- a/app/logical/sources/strategies/twitter.rb +++ b/app/logical/sources/strategies/twitter.rb @@ -80,8 +80,10 @@ module Sources::Strategies end def preview_urls - image_urls.map do |x| - x.sub(%r!\.(jpg|jpeg|png|gif)(?::orig)?\z!i, '.\1:small') + return image_urls if api_response.blank? + + api_response.dig(:extended_entities, :media).to_a.map do |media| + media[:media_url_https] + ":small" end end diff --git a/test/unit/sources/twitter_test.rb b/test/unit/sources/twitter_test.rb index c8362563c..784550ed2 100644 --- a/test/unit/sources/twitter_test.rb +++ b/test/unit/sources/twitter_test.rb @@ -32,6 +32,7 @@ module Sources should "get the correct urls" do assert_equal("https://video.twimg.com/ext_tw_video/859073467769126913/pu/vid/1280x720/cPGgVROXHy3yrK6u.mp4", @site.image_url) + assert_equal(["https://pbs.twimg.com/ext_tw_video_thumb/859073467769126913/pu/img/VKHGdXPsqKASBTvm.jpg:small"], @site.preview_urls) assert_equal("https://twitter.com/CincinnatiZoo/status/859073537713328129", @site.canonical_url) end end @@ -44,6 +45,10 @@ module Sources should "get the image url" do assert_equal("https://video.twimg.com/tweet_video/C-1Tns7WsAAqvqn.mp4", @site.image_url) end + + should "get the preview urls" do + assert_equal(["https://pbs.twimg.com/tweet_video_thumb/C-1Tns7WsAAqvqn.jpg:small"], @site.preview_urls) + end end context "A twitter summary card from twitter with a :large image" do