twitter: fix preview_urls when source url is a direct image.

Fix preview_urls returning an empty array when the source url is a
direct image from Twitter.

Also return preview_urls in /source.json.
This commit is contained in:
evazion
2020-01-21 16:32:31 -06:00
parent b60d988790
commit 60bf21ff80
3 changed files with 19 additions and 9 deletions

View File

@@ -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,

View File

@@ -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

View File

@@ -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