From f8a56207686376bb846cc43ea3113d2035c1a5b2 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 23 Jan 2018 23:07:21 -0600 Subject: [PATCH] Partial fix for #3514: Handle https://twitter.com/i/web/status/:id URL. --- app/logical/sources/strategies/twitter.rb | 4 +++- app/models/artist.rb | 1 + test/unit/sources/twitter_test.rb | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/logical/sources/strategies/twitter.rb b/app/logical/sources/strategies/twitter.rb index 646f9ec47..090d8736b 100644 --- a/app/logical/sources/strategies/twitter.rb +++ b/app/logical/sources/strategies/twitter.rb @@ -65,8 +65,10 @@ module Sources::Strategies self.class.status_id_from_url(referer_url) end + # https://twitter.com/i/web/status/943446161586733056 + # https://twitter.com/motty08111213/status/943446161586733056 def self.status_id_from_url(url) - if url =~ %r{^https?://(?:mobile\.)?twitter\.com/\w+/status/(\d+)} + if url =~ %r{\Ahttps?://(?:mobile\.)?twitter\.com/(?:i/web|\w+)/status/(\d+)}i $1.to_i else nil diff --git a/app/models/artist.rb b/app/models/artist.rb index 8f65c449b..497ed5ed4 100644 --- a/app/models/artist.rb +++ b/app/models/artist.rb @@ -125,6 +125,7 @@ class Artist < ApplicationRecord "twitpic.com", "twitpic.com/photos", # http://twitpic.com/photos/Type10TK "twitter.com", # https://twitter.com/akkij0358 + "twitter.com/i/web/status", # https://twitter.com/i/web/status/943446161586733056 "ustream.tv", "ustream.tv/channel", # http://www.ustream.tv/channel/633b "ustream.tv/user", # http://www.ustream.tv/user/kazaputi diff --git a/test/unit/sources/twitter_test.rb b/test/unit/sources/twitter_test.rb index 3e318624c..f42e1a4b6 100644 --- a/test/unit/sources/twitter_test.rb +++ b/test/unit/sources/twitter_test.rb @@ -138,6 +138,17 @@ module Sources end end + context "The source site for a https://twitter.com/i/web/status/:id url" do + setup do + @site = Sources::Site.new("https://twitter.com/i/web/status/943446161586733056") + @site.get + end + + should "fetch the source data" do + assert_equal("https://twitter.com/motty08111213", @site.profile_url) + end + end + context "A tweet" do setup do @site = Sources::Site.new("https://twitter.com/noizave/status/875768175136317440")