diff --git a/app/logical/sources/strategies/pixiv.rb b/app/logical/sources/strategies/pixiv.rb index e61ef4b15..2211ff18e 100644 --- a/app/logical/sources/strategies/pixiv.rb +++ b/app/logical/sources/strategies/pixiv.rb @@ -11,11 +11,11 @@ module Sources TIMESTAMP = '(?:[0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9]{2}/[0-9]{2}/[0-9]{2})' EXT = "(?:jpg|jpeg|png|gif)" - WEB = "^(?:https?://)?www\\.pixiv\\.net" - I12 = "^(?:https?://)?i[0-9]+\\.pixiv\\.net" - IMG = "^(?:https?://)?img[0-9]*\\.pixiv\\.net" - PXIMG = "^(?:https?://)?i\\.pximg\\.net" - TOUCH = "^(?:https?://)?touch\\.pixiv\\.net" + WEB = '(?:\A(?:https?://)?www\.pixiv\.net)' + I12 = '(?:\A(?:https?://)?i[0-9]+\.pixiv\.net)' + IMG = '(?:\A(?:https?://)?img[0-9]*\.pixiv\.net)' + PXIMG = '(?:\A(?:https?://)?i\.pximg\.net)' + TOUCH = '(?:\A(?:https?://)?touch\.pixiv\.net)' def self.url_match?(url) url =~ /#{WEB}|#{IMG}|#{I12}|#{TOUCH}|#{PXIMG}/i @@ -330,7 +330,7 @@ module Sources return true if url =~ %r!#{PXIMG}/img-original/img/#{TIMESTAMP}/\d+_\w+\.#{EXT}!i # http://i1.pixiv.net/img-zip-ugoira/img/2014/10/03/17/29/16/46323924_ugoira1920x1080.zip - return true if url =~ %r!#{I12}/img-zip-ugoira/img/#{TIMESTAMP}/\d+_ugoira\d+x\d+\.zip$!i + return true if url =~ %r!#{I12}|#{PXIMG}/img-zip-ugoira/img/#{TIMESTAMP}/\d+_ugoira\d+x\d+\.zip$!i return false end diff --git a/test/unit/sources/pixiv_test.rb b/test/unit/sources/pixiv_test.rb index 8a511bb16..fd5523826 100644 --- a/test/unit/sources/pixiv_test.rb +++ b/test/unit/sources/pixiv_test.rb @@ -47,6 +47,15 @@ module Sources end end + context "A https://i.pximg.net/img-zip/ugoira/* source" do + should "get the metadata" do + @site = Sources::Site.new("https://i.pximg.net/img-zip-ugoira/img/2017/04/04/08/57/38/62247364_ugoira1920x1080.zip") + @site.get + + assert_equal("uroobnad2", @site.artist_name) + end + end + context "fetching source data for a new manga image" do setup do get_source("http://www.pixiv.net/member_illust.php?mode=medium&illust_id=46304614")