From c07c5ea5948c7dbdd4d82a99426f64a1782cd9c1 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 23 Mar 2022 21:25:23 -0500 Subject: [PATCH] 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. --- app/logical/source/url/nico_seiga.rb | 11 +++++++---- test/unit/sources/nico_seiga_test.rb | 10 +++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/logical/source/url/nico_seiga.rb b/app/logical/source/url/nico_seiga.rb index 4b563f473..78353101e 100644 --- a/app/logical/source/url/nico_seiga.rb +++ b/app/logical/source/url/nico_seiga.rb @@ -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 diff --git a/test/unit/sources/nico_seiga_test.rb b/test/unit/sources/nico_seiga_test.rb index b675644ed..cbdbe9d6c 100644 --- a/test/unit/sources/nico_seiga_test.rb +++ b/test/unit/sources/nico_seiga_test.rb @@ -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