feat: match more lib domains

This commit is contained in:
mrbunker
2024-12-29 00:16:22 +08:00
parent 7371dd6a32
commit 82c78a0ccf
4 changed files with 51 additions and 18 deletions

42
script/urlConfig.ts Normal file
View File

@@ -0,0 +1,42 @@
import { siteList } from "../src/utils/siteList";
const cleanUrl = (url: string): string => {
return url.replace(/^(https?:\/\/)?(www\.)?/, "");
};
const getLibMirror = async () => {
const user = "javlibcom";
const res = await fetch(`https://api.github.com/users/${user}`);
const data = (await res.json()) || {};
return cleanUrl(data.blog ?? "");
};
const getDbMirror = async () => {
const res = await fetch(`https://javdb.com/`);
const htmlText = await res.text();
const navMatch = htmlText.match(/<nav[^>]*class="[^"]*sub-header[^"]*"[^>]*>([\s\S]*?)<\/nav>/i);
if (!navMatch) return [];
const hrefRegex = /href="([^"]+)"/g;
return [...navMatch[1].matchAll(hrefRegex)].map((match) => cleanUrl(match[1])).filter(Boolean);
};
const libMirrorUrl = await getLibMirror();
const dbMirrorUrls = await getDbMirror();
const connectList = siteList.map((site) => site.hostname);
const includeList = [
/^https?:\/\/(\w*\.)?javdb(\d)*\.com\/v.*$/,
/^https?:\/\/(\w*\.)?(javbus|seejav|javsee)*\.(com|cc|me|life|bid).*$/,
/^https?:\/\/(\w*\.)?javlibrary\.com.*$/,
/^http.*\/cn\/\?v=jav.*$/,
];
const mirrorList = [...dbMirrorUrls, libMirrorUrl];
export default {
match: [...mirrorList],
connect: connectList,
include: includeList,
};

View File

@@ -11,9 +11,9 @@ if (!import.meta.env.PROD) {
function main() {
/** 当前匹配的图书馆站点对象 */
const libItem = libSites.find((item) => item.href.test(window.location.href));
const libItem = libSites.find((item) => document.querySelector(item.identifier));
if (!libItem) {
console.error("||脚本挂载错误");
console.error("||jop 匹配站点失败");
return;
}
const CODE = getCode(libItem);
@@ -23,7 +23,7 @@ function main() {
const panel = document.querySelector<HTMLElement>(libItem.querys.panelQueryStr);
if (!panel) {
console.error("||脚本挂载错误");
console.error("||jop 插入界面失败");
return;
}

View File

@@ -2,7 +2,7 @@
export type LibItem = {
name: "javdb" | "javbus" | "javlib";
enable: boolean;
href: RegExp;
identifier: string;
querys: {
panelQueryStr: string;
codeQueryStr: string;
@@ -15,7 +15,7 @@ export const libSites: LibItem[] = [
{
name: "javdb",
enable: true,
href: /^https?:\/\/(\w*\.)?javdb(\d)*\.com\/v.*$/,
identifier: "a[href*='javdb']",
querys: {
panelQueryStr: ".video-meta-panel>.columns.is-desktop .panel.movie-panel-info",
codeQueryStr: `[data-clipboard-text]`,
@@ -35,7 +35,7 @@ export const libSites: LibItem[] = [
{
name: "javbus",
enable: true,
href: /^https?:\/\/(\w*\.)?(javbus|seejav|javsee)*\.(com|cc|me|life|bid).*$/,
identifier: "a[href*='javbus']",
querys: {
panelQueryStr: ".movie>div.info",
codeQueryStr: `span[style="color:#CC0000;"]`,
@@ -45,7 +45,7 @@ export const libSites: LibItem[] = [
{
name: "javlib",
enable: true,
href: /^http.*\/cn\/\?v=jav.*$/,
identifier: "img[src*='logo-top']",
querys: {
panelQueryStr: "#video_jacket_info #video_info",
codeQueryStr: `#video_id td.text`,

View File

@@ -1,14 +1,7 @@
import { defineConfig } from "vite";
import monkey, { cdn, MonkeyUserScript } from "vite-plugin-monkey";
import preact from "@preact/preset-vite";
import { siteList } from "./src/utils/siteList";
import { libSites } from "./src/utils/libSites";
const connectList = siteList
.map((site) => site.hostname)
.concat(["javdb368.com", "javdb369.com", "g64w.com"]);
const includeList = libSites.map((libItem) => libItem.href);
import urlConfig from "./script/urlConfig";
const PARALLEL =
"https://raw.githubusercontent.com/Tampermonkey/utils/refs/heads/main/requires/gh_2215_make_GM_xhr_more_parallel_again.js";
@@ -18,12 +11,10 @@ const UserscriptConfig: MonkeyUserScript = {
version: "1.2.5",
license: "MIT",
name: "JAV 添加跳转在线观看",
// match: ["*://*/cn/?v=jav*"],
include: includeList,
icon: "https://javdb.com/favicon-32x32.png",
namespace: "https://greasyfork.org/zh-CN/scripts/429173",
description: "为 JavDB、JavBus、JavLibrary 这三个站点添加跳转在线观看的链接",
connect: connectList,
...urlConfig,
require: [PARALLEL],
};