From f42e4044a0546e475b311c1412005cd3c4bc0690 Mon Sep 17 00:00:00 2001 From: Toks Date: Thu, 28 May 2015 02:16:17 -0400 Subject: [PATCH] Fix "No status found with that ID." when fetching from twitter --- app/logical/sources/strategies/twitter.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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