diff --git a/app/logical/source/url/mastodon.rb b/app/logical/source/url/mastodon.rb index 4d656ec9b..056cfc76a 100644 --- a/app/logical/source/url/mastodon.rb +++ b/app/logical/source/url/mastodon.rb @@ -15,17 +15,23 @@ class Source::URL::Mastodon < Source::URL def parse case [host, *path_segments] - # https://pawoo.net/@evazion - # https://baraag.net/@danbooru - in _, /^@/ => username - @username = username.delete_prefix("@") - # https://pawoo.net/@evazion/19451018 # https://baraag.net/@curator/102270656480174153 in _, /^@/ => username, /^\d+$/ => work_id, *rest @username = username.delete_prefix("@") @work_id = work_id + # https://pawoo.net/@evazion + # https://baraag.net/@danbooru + # https://baraag.net/@quietvice/media + in _, /^@/ => username, *rest + @username = username.delete_prefix("@") + + # https://pawoo.net/users/esoraneko + # https://pawoo.net/users/khurata/media + in _, "users", username, *rest + @username = username + # https://pawoo.net/web/statuses/19451018 # https://pawoo.net/web/statuses/19451018/favorites # https://baraag.net/web/statuses/102270656480174153 diff --git a/test/unit/artist_url_test.rb b/test/unit/artist_url_test.rb index a24369ad7..5a31e555f 100644 --- a/test/unit/artist_url_test.rb +++ b/test/unit/artist_url_test.rb @@ -168,6 +168,22 @@ class ArtistURLTest < ActiveSupport::TestCase assert_equal("http://nijie.info/invalid.php/", url.normalized_url) end + should "normalize pawoo.net urls" do + url = create(:artist_url, url: "http://pawoo.net/@evazion/19451018") + assert_equal("https://pawoo.net/@evazion", url.url) + assert_equal("http://pawoo.net/@evazion/", url.normalized_url) + + url = create(:artist_url, url: "http://pawoo.net/users/evazion/media") + assert_equal("https://pawoo.net/@evazion", url.url) + assert_equal("http://pawoo.net/@evazion/", url.normalized_url) + end + + should "normalize baraag.net urls" do + url = create(:artist_url, url: "http://baraag.net/@curator/102270656480174153") + assert_equal("https://baraag.net/@curator", url.url) + assert_equal("http://baraag.net/@curator/", url.normalized_url) + end + context "#search method" do subject { ArtistURL }