Jsoso

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

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

작성자
sexjpg
일일 설치 수
7
총 설치 수
10
평점
0 0 0
버전
1.0.2
생성일
2026-01-09
갱신일
2026-01-09
크기
32.3KB
라이선스
MIT
적용 사이트

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!