diff --git a/app/logical/sources/strategies/twitter.rb b/app/logical/sources/strategies/twitter.rb index e3c93ff09..ca4ec51be 100644 --- a/app/logical/sources/strategies/twitter.rb +++ b/app/logical/sources/strategies/twitter.rb @@ -13,7 +13,8 @@ module Sources::Strategies end def get - attrs = TwitterService.new.client.status(url).attrs + status_id = status_id_from_url(url) + attrs = TwitterService.new.client.status(status_id).attrs @artist_name = attrs[:user][:name] @profile_url = "https://twitter.com/" + attrs[:user][:screen_name] @image_url = attrs[:entities][:media][0][:media_url] + ":orig" @@ -22,5 +23,13 @@ module Sources::Strategies def image_urls TwitterService.new.image_urls(url) end + + def status_id_from_url(url) + if url =~ %r{^https?://twitter\.com/[^/]+/status/(\d+)} + $1 + else + raise Sources::Error.new("Couldn't get status ID from URL: #{url}") + end + end end end