34 lines
840 B
Ruby
34 lines
840 B
Ruby
class TwitterService
|
|
def client
|
|
raise "Twitter API keys not set" if Danbooru.config.twitter_api_key.nil?
|
|
|
|
@client ||= begin
|
|
rest_client = Twitter::REST::Client.new do |config|
|
|
config.consumer_key = Danbooru.config.twitter_api_key
|
|
config.consumer_secret = Danbooru.config.twitter_api_secret
|
|
if bearer_token = Cache.get("twitter-api-token")
|
|
config.bearer_token = bearer_token
|
|
end
|
|
end
|
|
|
|
Cache.put("twitter-api-token", rest_client.bearer_token)
|
|
|
|
rest_client
|
|
end
|
|
end
|
|
|
|
def image_urls(tweet_url)
|
|
attrs = client.status(tweet_url).attrs
|
|
urls = []
|
|
attrs[:entities][:media].each do |obj|
|
|
urls << obj[:media_url]
|
|
end
|
|
attrs[:extended_entities][:media].each do |obj|
|
|
urls << obj[:media_url]
|
|
end
|
|
urls.uniq
|
|
rescue
|
|
[]
|
|
end
|
|
end
|