pixiv: normalize new profile urls.

ref: https://danbooru.donmai.us/forum_topics/9127?page=290#forum_post_162222
This commit is contained in:
evazion
2020-01-08 16:11:48 -06:00
parent ba2744ad42
commit 5a4b24f6a0
3 changed files with 11 additions and 0 deletions

View File

@@ -109,6 +109,8 @@ class Artist < ApplicationRecord
"pixiv.cc", # http://pixiv.cc/0123456789/
"pixiv.net", # https://www.pixiv.net/member.php?id=10442390
"pixiv.net/stacc", # https://www.pixiv.net/stacc/aaaninja2013
"pixiv.net/users", # https://www.pixiv.net/users/555603
"pixiv.net/en/users", # https://www.pixiv.net/en/users/555603
"i.pximg.net",
"plurk.com", # http://www.plurk.com/a1amorea1a1
"privatter.net",

View File

@@ -27,6 +27,9 @@ class ArtistUrl < ApplicationRecord
# 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/")
# XXX should be handled by pixiv strategy.
url = url.sub(%r!\Ahttps?://www\.pixiv\.net/(?:en/)?users/(\d+)\z!i, 'https://www.pixiv.net/member.php?id=\1')
# the strategy won't always work for twitter because it looks for a status
url = url.downcase if url =~ %r!^https?://(?:mobile\.)?twitter\.com!

View File

@@ -155,6 +155,12 @@ class ArtistUrlTest < ActiveSupport::TestCase
assert_equal("http://www.pixiv.net/fanbox/creator/3113804/", url.normalized_url)
end
should "normalize pixiv.net/user/123 urls" do
url = create(:artist_url, url: "https://www.pixiv.net/en/users/123")
assert_equal("https://www.pixiv.net/en/users/123", url.url)
assert_equal("http://www.pixiv.net/member.php?id=123/", url.normalized_url)
end
should "normalize twitter urls" do
url = FactoryBot.create(:artist_url, :url => "https://twitter.com/aoimanabu/status/892370963630743552")
assert_equal("https://twitter.com/aoimanabu/status/892370963630743552", url.url)