Jsoso

通用搜索框架 - 用于多个网站的自动外部资源搜索

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

Autor
sexjpg
Instalări zilnice
7
Total instalări
10
Rating-uri
0 0 0
Versiune
1.0.2
Creat
09-01-2026
Actualizat
09-01-2026
Size
32,3 KB
Licență
MIT
Se aplică pe

Jsoso - 通用搜索框架

一个用于多个网站的自动外部资源搜索的油猴脚本,支持在多个网站上自动搜索相关资源并显示结果。

功能特性

  • 🚀 自动在多个网站搜索相关资源
  • 🎯 支持多个目标网站(FC2PPVDB、JAVDB、FC2官方、JAVBus等)
  • 💾 智能缓存机制,避免重复搜索
  • 🎨 可自定义的悬浮菜单和按钮样式
  • ⚡ 支持并发搜索和队列管理
  • 🔧 可配置的搜索网站开关
  • 🎮 充能按钮模式(长按打开链接)

安装方法

前置要求

  1. 安装油猴脚本管理器:

安装步骤

  1. 点击油猴图标 → "添加新脚本"
  2. 复制 Jsoso.js 文件的全部内容
  3. 粘贴到编辑器中
  4. 保存脚本(Ctrl+S 或 Cmd+S)

使用方法

基本使用

  1. 访问支持的目标网站(FC2PPVDB、JAVDB、FC2官方、JAVBus等)
  2. 脚本会自动在页面加载后2秒开始搜索
  3. 搜索结果会以按钮形式显示在相应位置
  4. 点击按钮即可跳转到搜索结果页面

快捷键

  • Alt + Q:手动触发搜索

配置菜单

  1. 点击页面左侧的 "Jsoso" 菜单标题
  2. 可以进行以下配置:
    • 启动充能:开启充能按钮模式(长按按钮1秒后打开链接)
    • 网站开关:勾选/取消勾选要搜索的网站

支持的搜索网站

脚本默认支持以下搜索网站:

  • 123av - 蓝色按钮
  • MissAV - 绿色按钮
  • 7MMTV - 红色按钮
  • JAVFC2 - 紫色按钮
  • Sukebei - 黄色按钮
  • SupJav - 橙色按钮
  • 3xplanet - 灰色按钮
  • bt4gprx - 灰色按钮
  • 字幕猫 - 紫色按钮

支持的目标网站

脚本在以下网站上自动运行:

  • FC2PPVDB (fc2ppvdb.com)
  • JAVDB (javdb.com)
  • FC2官网成人区 (adult.xiaojiadianmovie.be)
  • JAVBus (javbus.com)

开发者指南

添加新的搜索网站

要添加新的搜索网站,需要在 manager.addSite() 中添加新的 Site 实例:

manager.addSite(new Site(
    '网站名称',                    // 1. 网站名称(用于显示和配置)
    id => `搜索URL`,               // 2. 搜索URL生成函数
    (response, id, previewData) => {  // 3. 响应处理函数
        // 解析响应,判断是否有搜索结果
        const parser = new DOMParser();
        const doc = parser.parseFromString(response.responseText, "text/html");

        // 根据网站结构解析结果
        const hasResult = doc.querySelector("some-selector");

        if (hasResult) {
            previewData.url = `结果URL`;  // 设置结果URL
        }
    },
    'bg-blue-500'                  // 4. 按钮颜色类
));

参数说明

  1. 网站名称:显示在按钮上,用于配置菜单
  2. 搜索URL函数:接收ID参数,返回搜索URL
  3. 响应处理函数
    • response:HTTP响应对象
    • id:搜索的ID
    • previewData:结果对象,需设置 previewData.url
  4. 按钮颜色:使用Tailwind CSS颜色类(如 bg-blue-500

可选参数

new Site(
    name,
    searchUrlFunc,
    responseHandler,
    buttonColor,
    queryInterval = 1,              // 查询间隔(毫秒),默认1
    maxConcurrentSearches = 3       // 最大并发搜索数,默认3
)

添加新的目标网站

要适配新的目标网站,需要完成以下步骤:

1. 在脚本头部添加 @match 规则

// ==UserScript==
// @match        *://*.example.com/*
// ==/UserScript==

2. 创建提取函数

创建一个函数来提取页面上的ID和容器元素:

function example_site_wall() {
    const items = []
    const items_ = document.querySelectorAll('选择器')  // 选择包含ID的元素

    items_.forEach(item => {
        // 提取ID
        const id = item.textContent.trim();  // 或使用其他方式提取

        // 找到要插入按钮的容器
        const element = item.parentElement;

        items.push({
            id,
            element
        })
    })

    return items
}

3. 在 startSearch() 函数中添加调用

function startSearch() {
    manager.SearchItems = [];
    manager.SearchItems.push(...FC2PPVDB_wall());
    manager.SearchItems.push(...FC2PPVDB_singlepage());
    manager.SearchItems.push(...javdb_wall());
    manager.SearchItems.push(...javdb_singlepage());
    manager.SearchItems.push(...FC2_wall());
    manager.SearchItems.push(...FC2_singlepage());
    manager.SearchItems.push(...FC2_ranking());
    manager.SearchItems.push(...javbus_wall());

    // 添加新网站
    manager.SearchItems.push(...example_site_wall());

    console.log('准备开始搜索', manager.SearchItems);
    manager.initializeSearch();
    FC2DB_removeNoImage()
}

常用工具函数

Utils.formatID(id)

格式化ID,移除 "FC2-" 前缀:

const id = Utils.formatID("FC2-123456");  // 返回 "123456"

Utils.createDiv()

创建结果容器:

const container = Utils.createDiv();
element.appendChild(container);

Utils.createButton(url, text, bgColorClass)

创建搜索按钮:

const button = Utils.createButton(
    "https://example.com",
    "搜索",
    "bg-blue-500"
);

按钮颜色类

可用的颜色类:

  • bg-blue-500 - 蓝色
  • bg-green-500 - 绿色
  • bg-red-500 - 红色
  • bg-purple-500 - 紫色
  • bg-yellow-500 - 黄色
  • bg-orange-500 - 橙色
  • bg-gray-500 - 灰色

缓存机制

脚本使用 GM.setValue/GM.getValue 实现缓存,缓存默认有效期为10天。

缓存结果

await Utils.cacheResult(cacheKey, previewData, expiryDay);

获取缓存

const cachedResult = await Utils.getCachedResult(cacheKey);

调试技巧

  1. 打开浏览器控制台(F12)
  2. 查看搜索日志:console.log('准备开始搜索', manager.SearchItems);
  3. 检查网络请求:在 Network 标签页查看搜索请求
  4. 使用快捷键 Alt+Q 手动触发搜索

注意事项

  1. 脚本需要油猴管理器的 GM_xmlhttpRequestGM.setValueGM.getValue 权限
  2. 某些网站可能有反爬虫机制,需要调整请求间隔
  3. 缓存会占用存储空间,定期清理可释放空间
  4. 充能模式需要长按1秒才会打开链接,避免误触

版本历史

  • v1.0.2 - 当前版本
    • 支持多个目标网站
    • 智能缓存机制
    • 可配置的搜索网站
    • 充能按钮模式

许可证

本项目仅供学习和个人使用。

作者

sexjpg

贡献

欢迎提交 Issue 和 Pull Request!