feat: match more lib domains
This commit is contained in:
42
script/urlConfig.ts
Normal file
42
script/urlConfig.ts
Normal 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,
|
||||
};
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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`,
|
||||
|
||||
@@ -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],
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user