diff --git a/app/logical/sources/strategies/base.rb b/app/logical/sources/strategies/base.rb index 06da88748..9c7d7e322 100644 --- a/app/logical/sources/strategies/base.rb +++ b/app/logical/sources/strategies/base.rb @@ -269,6 +269,8 @@ module Sources :artists => artists.as_json(include: :sorted_urls), :image_url => image_url, :image_urls => image_urls, + :preview_url => preview_url, + :preview_urls => preview_urls, :page_url => page_url, :canonical_url => canonical_url, :normalized_for_artist_finder_url => normalize_for_artist_finder, diff --git a/app/logical/sources/strategies/twitter.rb b/app/logical/sources/strategies/twitter.rb index 194e11664..fac492137 100644 --- a/app/logical/sources/strategies/twitter.rb +++ b/app/logical/sources/strategies/twitter.rb @@ -80,10 +80,14 @@ module Sources::Strategies end def preview_urls - return image_urls if api_response.blank? - - api_response.dig(:extended_entities, :media).to_a.map do |media| - media[:media_url_https] + ":small" + if api_response.dig(:extended_entities, :media).present? + api_response.dig(:extended_entities, :media).to_a.map do |media| + media[:media_url_https] + ":small" + end + else + image_urls.map do |url| + url.gsub(/:orig\z/, ":small") + end end end diff --git a/test/unit/sources/twitter_test.rb b/test/unit/sources/twitter_test.rb index 784550ed2..370cfa6dd 100644 --- a/test/unit/sources/twitter_test.rb +++ b/test/unit/sources/twitter_test.rb @@ -76,6 +76,7 @@ module Sources should "get the urls" do assert_equal("https://pbs.twimg.com/media/B7jfc1JCcAEyeJh.png:orig", @site.image_url) + assert_equal("https://pbs.twimg.com/media/B7jfc1JCcAEyeJh.png:small", @site.preview_url) assert_equal("https://twitter.com/Strangestone/status/556440271961858051", @site.page_url) assert_equal("https://twitter.com/Strangestone/status/556440271961858051", @site.canonical_url) end @@ -108,8 +109,9 @@ module Sources assert_equal("nounproject", @site.artist_name) end - should "get the image url" do + should "get the image urls" do assert_equal("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:orig", @site.image_url) + assert_equal("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:small", @site.preview_url) end should "get the canonical url" do @@ -136,12 +138,10 @@ module Sources @site = Sources::Strategies.find("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:large", "https://twitter.com/nounproject/status/540944400767922176") end - should "get the artist name" do + should "get the source data" do assert_equal("nounproject", @site.artist_name) - end - - should "get the image url" do assert_equal("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:orig", @site.image_url) + assert_equal("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:small", @site.preview_url) end end @@ -153,6 +153,8 @@ module Sources should "work" do assert_equal("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:orig", @site.image_url) assert_equal(["https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:orig"], @site.image_urls) + assert_equal("https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:small", @site.preview_url) + assert_equal(["https://pbs.twimg.com/media/B4HSEP5CUAA4xyu.png:small"], @site.preview_urls) assert(@site.artist_name.blank?) assert(@site.profile_url.blank?) assert(@site.artists.empty?) @@ -171,6 +173,8 @@ module Sources should "work" do assert_equal("https://pbs.twimg.com/media/EBGp2YdUYAA19Uj.jpg:orig", @site.image_url) assert_equal(["https://pbs.twimg.com/media/EBGp2YdUYAA19Uj.jpg:orig"], @site.image_urls) + assert_equal("https://pbs.twimg.com/media/EBGp2YdUYAA19Uj.jpg:small", @site.preview_url) + assert_equal(["https://pbs.twimg.com/media/EBGp2YdUYAA19Uj.jpg:small"], @site.preview_urls) assert_equal("https://pbs.twimg.com/media/EBGp2YdUYAA19Uj.jpg:orig", @site.canonical_url) end