Merge pull request #3255 from evazion/fix-3254
Fix #3254, #3072: Some Twitter URLs upload wrong image.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
module Sources::Strategies
|
||||
class Twitter < Base
|
||||
attr_reader :image_urls
|
||||
|
||||
def self.url_match?(url)
|
||||
url =~ %r!https?://(?:mobile\.)?twitter\.com/\w+/status/\d+! || url =~ %r{https?://pbs\.twimg\.com/media/}
|
||||
end
|
||||
@@ -18,26 +20,23 @@ module Sources::Strategies
|
||||
|
||||
def api_response
|
||||
status_id = status_id_from_url(url)
|
||||
@api_response ||= TwitterService.new.client.status(status_id)
|
||||
@api_response ||= TwitterService.new.client.status(status_id, tweet_mode: "extended")
|
||||
end
|
||||
|
||||
def get
|
||||
attrs = api_response.attrs
|
||||
@artist_name = attrs[:user][:name]
|
||||
@profile_url = "https://twitter.com/" + attrs[:user][:screen_name]
|
||||
@image_url = image_urls.first
|
||||
@image_urls = TwitterService.new.image_urls(api_response)
|
||||
@image_url = @image_urls.first
|
||||
@artist_commentary_title = ""
|
||||
@artist_commentary_desc = attrs[:text]
|
||||
@artist_commentary_desc = attrs[:full_text]
|
||||
@tags = attrs[:entities][:hashtags].map do |text:, indices:|
|
||||
[text, "https://twitter.com/hashtag/#{text}"]
|
||||
end
|
||||
rescue ::Twitter::Error::Forbidden
|
||||
end
|
||||
|
||||
def image_urls
|
||||
TwitterService.new.image_urls(url)
|
||||
end
|
||||
|
||||
def normalize_for_artist_finder!
|
||||
url.downcase
|
||||
end
|
||||
@@ -47,11 +46,11 @@ module Sources::Strategies
|
||||
end
|
||||
|
||||
def dtext_artist_commentary_desc
|
||||
url_replacements = Array(api_response.attrs[:entities][:urls]).map do |url:, expanded_url:, **attrs|
|
||||
[url, expanded_url]
|
||||
url_replacements = api_response.urls.map do |obj|
|
||||
[obj.url.to_s, obj.expanded_url.to_s]
|
||||
end
|
||||
url_replacements += Array(api_response.attrs[:entities][:media]).map do |url:, expanded_url:, **attrs|
|
||||
[url, ""]
|
||||
url_replacements += api_response.media.map do |obj|
|
||||
[obj.url.to_s, ""]
|
||||
end
|
||||
url_replacements = url_replacements.to_h
|
||||
|
||||
|
||||
Reference in New Issue
Block a user