From a09775af36e8505aa074b6fef20cb1cb474575e7 Mon Sep 17 00:00:00 2001 From: yzqzss Date: Fri, 21 Jul 2023 00:09:45 +0800 Subject: [PATCH] =?UTF-8?q?UserScript.js:=20=E6=94=AF=E6=8C=81=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=88=86p=E5=AF=B9=E5=BA=94=E7=9A=84=20IA=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: #1 --- userscript.js | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/userscript.js b/userscript.js index 7fa2589..7efdd1a 100644 --- a/userscript.js +++ b/userscript.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Archive Checker -// @version 1.0 +// @version 1.1 // @description 多 p 视频只检查 p1 是否存在。 // @author yzqzss // @match https://www.bilibili.com/video/* @@ -16,11 +16,25 @@ var bvRegex = /\/video\/(BV\w+)/; var matches = url.match(bvRegex); if (matches && matches.length > 1) { + console.log("BV:", matches[1]); return matches[1]; } + console.log("No BV number found."); return null; } + function getPageNumber() { + var url = window.location.href; + var pageRegex = /p=(\d+)/; + var matches = url.match(pageRegex); + if (matches && matches.length > 1) { + console.log("PageNumber:", matches[1]); + return matches[1]; + } + console.log("No PageNumber found, use 1."); + return '1'; + } + function humanReadableUpperPartMap(string, backward) { // 找到字符串中所有的 ASCII 大写字母,并返回一个能表示他们绝对位置的字符串。 // 其中每个非相邻的大写字母之间用数字表示相隔的字符数。 @@ -38,14 +52,13 @@ if (backward) { string = string.split('').reverse().join(''); } - console.log(string); let result = ''; let steps = 0; let char_ = ''; for (let i = 0; i < string.length; i++) { char_ = string[i]; - console.log('char_:', char_); + // console.log('char_:', char_); if (char_ >= 'A' && char_ <= 'Z') { if (steps === 0) { result += char_; @@ -58,14 +71,14 @@ steps++; } } - + console.log("upperPart:", result); return result; } // 查 archive.org - function queryInternetArchive(bvNumber) { - var iaUrl = "https://archive.org/services/check_identifier.php?output=json&identifier=BiliBili-" + bvNumber + "_p1" + "-" + humanReadableUpperPartMap(bvNumber, true); - console.log(iaUrl); + function queryInternetArchive(bvNumber, pageNumber) { + var iaUrl = "https://archive.org/services/check_identifier.php?output=json&identifier=BiliBili-" + bvNumber + "_p" + pageNumber + "-" + humanReadableUpperPartMap(bvNumber, true); + console.log("Querying:", iaUrl); GM_xmlhttpRequest({ method: "GET", url: iaUrl, @@ -151,8 +164,9 @@ function main() { var bvNumber = getBVNumber(); + var pageNumber = getPageNumber(); if (bvNumber) { - queryInternetArchive(bvNumber); + queryInternetArchive(bvNumber, pageNumber); } }