From 8e17b4936ac542e7ae296d40e9f9d411e6da4f7d Mon Sep 17 00:00:00 2001 From: Toks Date: Tue, 11 Aug 2015 20:28:58 -0400 Subject: [PATCH] Fix artist finder for hentai foundry #2489 --- app/models/artist_url.rb | 1 + script/fixes/036_fix_hentai_foundry_artist_urls.rb | 10 ++++++++++ test/unit/artist_url_test.rb | 5 +++++ 3 files changed, 16 insertions(+) create mode 100644 script/fixes/036_fix_hentai_foundry_artist_urls.rb diff --git a/app/models/artist_url.rb b/app/models/artist_url.rb index f31d32bf8..721da7bcc 100644 --- a/app/models/artist_url.rb +++ b/app/models/artist_url.rb @@ -14,6 +14,7 @@ class ArtistUrl < ActiveRecord::Base 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') + url = url.sub(%r!^http://pictures.hentai-foundry.com//!, "http://pictures.hentai-foundry.com/") begin url = Sources::Site.new(url).normalize_for_artist_finder! rescue PixivApiClient::Error diff --git a/script/fixes/036_fix_hentai_foundry_artist_urls.rb b/script/fixes/036_fix_hentai_foundry_artist_urls.rb new file mode 100644 index 000000000..bbaa6f943 --- /dev/null +++ b/script/fixes/036_fix_hentai_foundry_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.where("normalized_url like 'http://pictures.hentai-foundry.com//%'").update_all("normalized_url = replace(normalized_url, 'http://pictures.hentai-foundry.com//', 'http://pictures.hentai-foundry.com/')") diff --git a/test/unit/artist_url_test.rb b/test/unit/artist_url_test.rb index 45f7fb88e..1f753855e 100644 --- a/test/unit/artist_url_test.rb +++ b/test/unit/artist_url_test.rb @@ -44,6 +44,11 @@ class ArtistUrlTest < ActiveSupport::TestCase assert_equal("http://seiga.nicovideo.jp/user/illust/1826959/", url.normalized_url) end + should "normalize hentai foundry artist urls" do + url = FactoryGirl.create(:artist_url, :url => "http://pictures.hentai-foundry.com//a/AnimeFlux/219123.jpg") + assert_equal("http://pictures.hentai-foundry.com/a/AnimeFlux/219123.jpg/", 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)