From eac827973b5d060a0f7a3cdc80d7c6da770a07ea Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 15 May 2017 12:11:26 -0500 Subject: [PATCH] Normalize pixiv artist urls to pixiv member page (fix #3048). --- app/logical/sources/strategies/pixiv.rb | 13 ++++--------- test/functional/artists_controller_test.rb | 2 +- test/unit/artist_test.rb | 4 ++-- test/unit/artist_url_test.rb | 6 +++--- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/app/logical/sources/strategies/pixiv.rb b/app/logical/sources/strategies/pixiv.rb index cf0fc0215..0e13b972d 100644 --- a/app/logical/sources/strategies/pixiv.rb +++ b/app/logical/sources/strategies/pixiv.rb @@ -42,7 +42,7 @@ module Sources end def normalized_for_artist_finder? - url =~ %r!https?://img\.pixiv\.net/img/#{MONIKER}/?$!i + url =~ %r!\Ahttp://www\.pixiv\.net/member\.php\?id=[0-9]+\z/! end def normalizable_for_artist_finder? @@ -50,15 +50,10 @@ module Sources end def normalize_for_artist_finder! - if has_moniker? - moniker = get_moniker_from_url - else - @illust_id = illust_id_from_url! - @metadata = get_metadata_from_papi(@illust_id) - moniker = @metadata.moniker - end + @illust_id = illust_id_from_url! + @metadata = get_metadata_from_papi(@illust_id) - "http://img.pixiv.net/img/#{moniker}/" + "http://www.pixiv.net/member.php?id=#{@metadata.user_id}/" end def get diff --git a/test/functional/artists_controller_test.rb b/test/functional/artists_controller_test.rb index 7a9f0dc0c..362a66f0d 100644 --- a/test/functional/artists_controller_test.rb +++ b/test/functional/artists_controller_test.rb @@ -23,7 +23,7 @@ class ArtistsControllerTest < ActionController::TestCase CurrentUser.ip_addr = "127.0.0.1" @artist = FactoryGirl.create(:artist, :notes => "message") - @masao = FactoryGirl.create(:artist, :name => "masao", :url_string => "http://i2.pixiv.net/img04/img/syounen_no_uta/") + @masao = FactoryGirl.create(:artist, :name => "masao", :url_string => "http://www.pixiv.net/member.php?id=32777") @artgerm = FactoryGirl.create(:artist, :name => "artgerm", :url_string => "http://artgerm.deviantart.com/") end diff --git a/test/unit/artist_test.rb b/test/unit/artist_test.rb index c2342544f..c2889fadc 100644 --- a/test/unit/artist_test.rb +++ b/test/unit/artist_test.rb @@ -204,8 +204,8 @@ class ArtistTest < ActiveSupport::TestCase context "when finding pixiv artists" do setup do - FactoryGirl.create(:artist, :name => "masao",:url_string => "http://i2.pixiv.net/img04/img/syounen_no_uta/") - FactoryGirl.create(:artist, :name => "bkub", :url_string => "http://i1.pixiv.net/img01/img/bkubb/") + FactoryGirl.create(:artist, :name => "masao",:url_string => "http://www.pixiv.net/member.php?id=32777") + FactoryGirl.create(:artist, :name => "bkub", :url_string => "http://www.pixiv.net/member.php?id=9948") FactoryGirl.create(:artist, :name => "ryuura", :url_string => "http://www.pixiv.net/member.php?id=8678371") end diff --git a/test/unit/artist_url_test.rb b/test/unit/artist_url_test.rb index 1607c5734..38421fb77 100644 --- a/test/unit/artist_url_test.rb +++ b/test/unit/artist_url_test.rb @@ -52,9 +52,9 @@ class ArtistUrlTest < ActiveSupport::TestCase end should "normalize pixiv urls" do - url = FactoryGirl.create(:artist_url, :url => "http://img55.pixiv.net/img/monet") - assert_equal("http://img55.pixiv.net/img/monet", url.url) - assert_equal("http://img.pixiv.net/img/monet/", url.normalized_url) + url = FactoryGirl.create(:artist_url, :url => "https://i.pximg.net/img-original/img/2010/11/30/08/39/58/14901720_p0.png") + assert_equal("https://i.pximg.net/img-original/img/2010/11/30/08/39/58/14901720_p0.png", url.url) + assert_equal("http://www.pixiv.net/member.php?id=339253/", url.normalized_url) end should "normalize twitter urls" do