diff --git a/app/logical/sources/strategies/twitter.rb b/app/logical/sources/strategies/twitter.rb index e4eb5c7fe..bc86bd851 100644 --- a/app/logical/sources/strategies/twitter.rb +++ b/app/logical/sources/strategies/twitter.rb @@ -151,8 +151,9 @@ module Sources::Strategies end def normalize_for_source - status_id = self.class.status_id_from_url(url) - if status_id.present? + if tag_name_from_url.present? && status_id.present? + "https://twitter.com/#{tag_name_from_url}/status/#{status_id}" + elsif status_id.present? "https://twitter.com/i/web/status/#{status_id}" elsif url =~ %r{\Ahttps?://(?:o|image-proxy-origin)\.twimg\.com/\d/proxy\.jpg\?t=(\w+)&}i str = Base64.decode64($1) diff --git a/test/unit/sources/twitter_test.rb b/test/unit/sources/twitter_test.rb index 45e8e3a0c..3053e98bd 100644 --- a/test/unit/sources/twitter_test.rb +++ b/test/unit/sources/twitter_test.rb @@ -316,9 +316,9 @@ module Sources source4 = "https://twitter.com/BOW999/status/1261877313349640194?s=19" assert_equal(source1, Sources::Strategies.normalize_source(source1)) - assert_equal(source1, Sources::Strategies.normalize_source(source2)) - assert_equal(source1, Sources::Strategies.normalize_source(source3)) - assert_equal(source1, Sources::Strategies.normalize_source(source4)) + assert_equal(source2, Sources::Strategies.normalize_source(source2)) + assert_equal(source2, Sources::Strategies.normalize_source(source3)) + assert_equal(source2, Sources::Strategies.normalize_source(source4)) end should "normalize twimg twitpic correctly" do