Fix #5152: Nicovideo video urls getting bad_source.

This commit is contained in:
evazion
2022-05-03 03:59:15 -05:00
parent 1a89071f2d
commit c07b099bf8
2 changed files with 25 additions and 3 deletions

View File

@@ -17,14 +17,12 @@
#
# Unhandled URLs
#
# * https://www.nicovideo.jp/watch/sm36465441
# * https://www.nicovideo.jp/watch/nm20676560
# * https://lohas.nicoseiga.jp/material/5746c5/4459092
# * https://dic.nicovideo.jp/oekaki/52833.png
#
module Source
class URL::NicoSeiga < Source::URL
attr_reader :illust_id, :manga_id, :image_id, :user_id, :username, :profile_url
attr_reader :illust_id, :manga_id, :image_id, :sm_video_id, :nm_video_id, :user_id, :username, :profile_url
def self.match?(url)
url.domain.in?(%w[nicovideo.jp nicoseiga.jp nicomanga.jp nimg.jp nico.ms])
@@ -49,6 +47,14 @@ module Source
in /seiga\.nicovideo\.jp$/, "watch", /^mg(\d+)/ => manga_id
@manga_id = $1
# https://www.nicovideo.jp/watch/sm36465441
in "www.nicovideo.jp", "watch", /^sm(\d+)/
@sm_video_id = $1
# https://www.nicovideo.jp/watch/nm36465441
in "www.nicovideo.jp", "watch", /^nm(\d+)/
@nm_video_id = $1
# https://seiga.nicovideo.jp/image/source/3521156 (single image; page: https://seiga.nicovideo.jp/seiga/im3312222)
# https://seiga.nicovideo.jp/image/source/4744553 (manga image; page: https://seiga.nicovideo.jp/watch/mg122274)
#
@@ -102,6 +108,14 @@ module Source
in "nico.ms", /^mg(\d+)$/
@manga_id = $1
# https://nico.ms/sm36465441
in "nico.ms", /^sm(\d+)$/
@sm_video_id = $1
# https://nico.ms/nm36465441
in "nico.ms", /^nm(\d+)$/
@nm_video_id = $1
# https://seiga.nicovideo.jp/user/illust/456831
# https://sp.seiga.nicovideo.jp/user/illust/20542122
# https://ext.seiga.nicovideo.jp/user/illust/20542122
@@ -166,6 +180,10 @@ module Source
"https://seiga.nicovideo.jp/seiga/im#{illust_id}"
elsif manga_id.present?
"https://seiga.nicovideo.jp/watch/mg#{manga_id}"
elsif nm_video_id.present?
"https://www.nicovideo.jp/watch/nm#{nm_video_id}"
elsif sm_video_id.present?
"https://www.nicovideo.jp/watch/sm#{sm_video_id}"
#elsif image_id.present?
# "https://seiga.nicovideo.jp/image/source/#{image_id}"
end

View File

@@ -201,8 +201,12 @@ module Sources
assert(Source::URL.page_url?("https://seiga.nicovideo.jp/seiga/im520647"))
assert(Source::URL.page_url?("https://sp.seiga.nicovideo.jp/seiga/im3521156"))
assert(Source::URL.page_url?("https://seiga.nicovideo.jp/watch/mg316708"))
assert(Source::URL.page_url?("https://www.nicovideo.jp/watch/sm36465441"))
assert(Source::URL.page_url?("https://www.nicovideo.jp/watch/nm36465441"))
assert(Source::URL.page_url?("https://nico.ms/im10922621"))
assert(Source::URL.page_url?("https://nico.ms/mg310193"))
assert(Source::URL.page_url?("https://nico.ms/sm36465441"))
assert(Source::URL.page_url?("https://nico.ms/nm36465441"))
assert(Source::URL.profile_url?("https://seiga.nicovideo.jp/user/illust/456831"))
assert(Source::URL.profile_url?("https://ext.seiga.nicovideo.jp/user/illust/20542122"))