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] @image_id = params[:id]
# https://lohas.nicoseiga.jp/o/971eb8af9bbcde5c2e51d5ef3a2f62d6d9ff5552/1589933964/3583893 (page: https://seiga.nicovideo.jp/seiga/im3583893) # 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/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) # 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 @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) # 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) # 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 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/priv/62a56a7f67d3d3746ae5712db9cac7d465f4a339/1592186183/10466669
# https://dcdn.cdn.nimg.jp/nicoseiga/lohas/o/8ba0a9b2ea34e1ef3b5cc50785bd10cd63ec7e4a/1592187477/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}" "https://seiga.nicovideo.jp/seiga/im#{illust_id}"
elsif manga_id.present? elsif manga_id.present?
"https://seiga.nicovideo.jp/watch/mg#{manga_id}" "https://seiga.nicovideo.jp/watch/mg#{manga_id}"
elsif image_id.present? #elsif image_id.present?
"https://seiga.nicovideo.jp/image/source/#{image_id}" # "https://seiga.nicovideo.jp/image/source/#{image_id}"
end end
end end
end end

View File

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