nicoseiga: fix page_url method not to return seiga.nicovideo.jp/image/source/:id urls.

Fix the page_url method not to return URLs like this:

    https://seiga.nicovideo.jp/image/source/8017978 (page: https://seiga.nicovideo.jp/watch/mg310193)

These are direct image URLs, not page URLs. It's not generally possible
to get to the page URL from an image URL like this.

This fixes it so that we don't incorrectly set the source of NicoSeiga
uploads to the image URL.
This commit is contained in:
evazion
2022-03-23 21:25:23 -05:00
parent 4ef8178bd1
commit c07c5ea594
2 changed files with 12 additions and 9 deletions

View File

@@ -63,9 +63,12 @@ module Source
@image_id = params[:id]
# https://lohas.nicoseiga.jp/o/971eb8af9bbcde5c2e51d5ef3a2f62d6d9ff5552/1589933964/3583893 (page: https://seiga.nicovideo.jp/seiga/im3583893)
in "lohas.nicoseiga.jp", "o", *, /^\d+$/ => illust_id
@illust_id = illust_id
# https://lohas.nicoseiga.jp/priv/b80f86c0d8591b217e7513a9e175e94e00f3c7a1/1384936074/3583893 (page: https://seiga.nicovideo.jp/seiga/im3583893)
# https://lohas.nicoseiga.jp/priv/3521156?e=1382558156&h=f2e089256abd1d453a455ec8f317a6c703e2cedf (page: https://seiga.nicovideo.jp/seiga/im3521156)
in "lohas.nicoseiga.jp", ("priv" | "o"), *, /^\d+$/ => image_id
in "lohas.nicoseiga.jp", "priv", *, /^\d+$/ => image_id
@image_id = image_id
# https://lohas.nicoseiga.jp/thumb/2163478i (page: https://seiga.nicovideo.jp/seiga/im2163478, image: https://lohas.nicoseiga.jp/priv/2e76be4c553c571b5a81e6ea1a69ab1367f02a41/1646904833/2163478)
@@ -76,7 +79,7 @@ module Source
# https://lohas.nicoseiga.jp/thumb/4744553p (page: https://seiga.nicovideo.jp/watch/mg122274, image: https://lohas.nicoseiga.jp/priv/49807693c31ed226818b9167e8e87561dd19a445/1646904643/4744553)
in "lohas.nicoseiga.jp", "thumb", /^(\d+)p$/ => image_id
@illust_id = $1
@image_id = $1
# https://dcdn.cdn.nimg.jp/priv/62a56a7f67d3d3746ae5712db9cac7d465f4a339/1592186183/10466669
# https://dcdn.cdn.nimg.jp/nicoseiga/lohas/o/8ba0a9b2ea34e1ef3b5cc50785bd10cd63ec7e4a/1592187477/10466669
@@ -146,8 +149,8 @@ module Source
"https://seiga.nicovideo.jp/seiga/im#{illust_id}"
elsif manga_id.present?
"https://seiga.nicovideo.jp/watch/mg#{manga_id}"
elsif image_id.present?
"https://seiga.nicovideo.jp/image/source/#{image_id}"
#elsif image_id.present?
# "https://seiga.nicovideo.jp/image/source/#{image_id}"
end
end
end

View File

@@ -54,7 +54,7 @@ module Sources
end
should "get the page url" do
assert_equal("https://seiga.nicovideo.jp/image/source/4937663", @site_1.page_url)
assert_equal("https://seiga.nicovideo.jp/seiga/im4937663", @site_1.page_url)
assert_equal("https://seiga.nicovideo.jp/seiga/im4937663", @site_2.page_url)
assert_equal("https://seiga.nicovideo.jp/watch/mg470189", @site_3.page_url)
end
@@ -166,10 +166,10 @@ module Sources
source3 = "http://lohas.nicoseiga.jp/o/910aecf08e542285862954017f8a33a8c32a8aec/1433298801/4937663"
source4 = "http://seiga.nicovideo.jp/image/source?id=3312222"
assert_equal("https://seiga.nicovideo.jp/image/source/3521156", Source::URL.page_url(source1))
assert_equal("https://seiga.nicovideo.jp/image/source/3583893", Source::URL.page_url(source2))
assert_equal("https://seiga.nicovideo.jp/image/source/4937663", Source::URL.page_url(source3))
assert_equal("https://seiga.nicovideo.jp/image/source/3312222", Source::URL.page_url(source4))
assert_nil(Source::URL.page_url(source1))
assert_nil(Source::URL.page_url(source2))
assert_equal("https://seiga.nicovideo.jp/seiga/im4937663", Source::URL.page_url(source3))
assert_nil(Source::URL.page_url(source4))
assert_nil(Source::URL.page_url("https://seiga.nicovideo.jp"))
end
end