twitter: fix batch bookmarklet selecting wrong image.

Fix regression in 7e465aeda.

https://danbooru.donmai.us/forum_topics/9127?page=276#forum_post_158779
This commit is contained in:
evazion
2019-08-06 10:42:45 -05:00
parent 0c6d9f60bd
commit a8896b664d
2 changed files with 7 additions and 3 deletions

View File

@@ -1,14 +1,13 @@
module Sources::Strategies
class Twitter < Base
PAGE = %r!\Ahttps?://(?:mobile\.)?twitter\.com!i
ASSET = %r!\A(https?://(?:video|pbs)\.twimg\.com/media/)!i
PROFILE = %r!\Ahttps?://(?:mobile\.)?twitter.com/(?<username>[a-z0-9_]+)!i
# https://pbs.twimg.com/media/EBGbJe_U8AA4Ekb.jpg
# https://pbs.twimg.com/media/EBGbJe_U8AA4Ekb?format=jpg&name=900x900
BASE_IMAGE_URL = %r!\Ahttps?://pbs\.twimg\.com/media!i
FILENAME1 = %r!(?<file_name>\w+)\.(?<file_ext>\w+)!i
FILENAME2 = %r!(?<file_name>\w+)\?.*format=(?<file_ext>\w+)!i
FILENAME1 = %r!(?<file_name>[a-zA-Z0-9_-]+)\.(?<file_ext>\w+)!i
FILENAME2 = %r!(?<file_name>[a-zA-Z0-9_-]+)\?.*format=(?<file_ext>\w+)!i
IMAGE_URL = %r!#{BASE_IMAGE_URL}/#{Regexp.union(FILENAME1, FILENAME2)}!i
# Twitter provides a list but it's inaccurate; some names ('intent') aren't

View File

@@ -189,6 +189,11 @@ module Sources
assert_equal(["https://pbs.twimg.com/media/EBGp2YdUYAA19Uj.jpg:orig"], @site.image_urls)
assert_equal("https://pbs.twimg.com/media/EBGp2YdUYAA19Uj.jpg:orig", @site.canonical_url)
end
should "work for filenames containing dashes" do
@site = Sources::Strategies.find("https://pbs.twimg.com/media/EAjc-OWVAAAxAgQ.jpg", "https://twitter.com/asteroid_ill/status/1155420330128625664")
assert_equal("https://pbs.twimg.com/media/EAjc-OWVAAAxAgQ.jpg:orig", @site.image_url)
end
end
context "The source site for a https://twitter.com/i/web/status/:id url" do