From a9502c0dc2a8cefe8c2a15c18bab6e3e967b14ad Mon Sep 17 00:00:00 2001 From: r888888888 Date: Fri, 7 Aug 2015 15:09:30 -0700 Subject: [PATCH] fixes #2319: Artist search - NicoSeiga - not finding artist entries from partial URLs --- app/models/artist_url.rb | 1 + script/fixes/035_fix_nico_seiga_artist_urls.rb | 10 ++++++++++ test/unit/artist_url_test.rb | 5 +++++ 3 files changed, 16 insertions(+) create mode 100644 script/fixes/035_fix_nico_seiga_artist_urls.rb diff --git a/app/models/artist_url.rb b/app/models/artist_url.rb index ac184eb60..f31d32bf8 100644 --- a/app/models/artist_url.rb +++ b/app/models/artist_url.rb @@ -13,6 +13,7 @@ class ArtistUrl < ActiveRecord::Base url = url.gsub(/^http:\/\/blog\d+\.fc2/, "http://blog.fc2") url = url.gsub(/^http:\/\/blog-imgs-\d+\.fc2/, "http://blog.fc2") url = url.gsub(/^http:\/\/blog-imgs-\d+-\w+\.fc2/, "http://blog.fc2") + url = url.sub(%r!(http://seiga.nicovideo.jp/user/illust/\d+)\?.+!, '\1') begin url = Sources::Site.new(url).normalize_for_artist_finder! rescue PixivApiClient::Error diff --git a/script/fixes/035_fix_nico_seiga_artist_urls.rb b/script/fixes/035_fix_nico_seiga_artist_urls.rb new file mode 100644 index 000000000..c0bfd74f0 --- /dev/null +++ b/script/fixes/035_fix_nico_seiga_artist_urls.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby + +require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')) + +ActiveRecord::Base.connection.execute("set statement_timeout = 0") + +CurrentUser.user = User.admins.first +CurrentUser.ip_addr = "127.0.0.1" + +ArtistUrl.update_all("normalized_url = replace(normalized_url, '?target=illust_all/', '/')", "normalized_url like 'http://seiga.nicovideo.jp/user/illust/%'") diff --git a/test/unit/artist_url_test.rb b/test/unit/artist_url_test.rb index 9339f98e5..45f7fb88e 100644 --- a/test/unit/artist_url_test.rb +++ b/test/unit/artist_url_test.rb @@ -39,6 +39,11 @@ class ArtistUrlTest < ActiveSupport::TestCase assert_equal("http://blog.fc2.com/monet/", url.normalized_url) end + should "normalize nico seiga artist urls" do + url = FactoryGirl.create(:artist_url, :url => "http://seiga.nicovideo.jp/user/illust/1826959?target=illust_all") + assert_equal("http://seiga.nicovideo.jp/user/illust/1826959/", url.normalized_url) + 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)