Greasy Fork

Greasy Fork is available in English.

MP自定义站点索引配置助手

自动获取 RSS订阅 的分类并生成 NexusPHP JSON和Base64配置,搭配MoviePilot的 自定义索引站点 插件使用。

作者
[email protected]
日安装量
0
总安装量
0
评分
0 0 0
版本
1.0.0
创建于
2025-11-04
更新于
2025-11-04
大小
68.4 KB
许可证
MIT
适用于
所有网站

MP自定义站点索引配置助手

概述

MP自定义站点索引配置助手.js 是一款面向 NexusPHP 系列站点的 Tampermonkey 用户脚本。脚本能够自动抓取 getrss.php 中的分类信息,生成符合 NexusPHP 索引标准的 JSON 配置,同时输出压缩后的 Base64 字符串,便于在 MP 自定义站点索引中快速导入。

功能亮点

  • 一键生成配置:在站点页面直接点击面板中的“生成”按钮,即可从 getrss.php 拉取最新分类,构建完整的 JSON 配置。
  • 双重输出格式:主面板同时展示格式化的 JSON 和 域名|Base64 组合。
  • 自动补全站点信息:脚本会根据 location.hostname 推导默认的 trackerIdtrackerNameDomain,减少手动输入。
  • 分类描述本地化:内置 CATEGORY_LOCALIZATION 与自定义映射,自动将常见类别翻译为中文,生成更易读的分类名称。
  • 自定义分类映射:通过面板右侧的“自定义分类描述”文本框,支持 cat401=电影Movies=电影 等覆盖规则,优先级高于默认翻译。
  • 可拖拽的 UI 控件:浮动圆形开关按钮与弹窗面板均支持拖拽定位,位置会通过 GM_setValue / GM_getValue 持久化。

使用步骤

  1. 安装 Tampermonkey(或兼容的用户脚本管理器),在其中导入 MP自定义站点索引配置助手.js
  2. 访问任意 NexusPHP 站点,例如 https://www.example.com
  3. 页面左下角会出现圆形浮动开关,点击即可打开主面板;也可在 Tampermonkey 菜单中选择“打开 MP自定义站点索引配置器”。
  4. 检查面板左侧的站点信息:
    • 架构 Schema 默认 NexusPhp
    • 标识 ID 自动生成,必要时可手动修改。
    • 名称 Name 参考页面标题自动填充。
    • 域名 Domain 默认读取当前页面 location.origin,如站点存在多域名请调整为目标域名。
    • 字符编码 Encoding 默认 UTF-8
  5. 根据需要在右侧的“自定义分类描述”区域补充覆盖规则(每行 键=值)。
  6. 点击“生成”按钮,脚本会:
    • 构造 getrss.php 请求 URL(保持原始子域名)。
    • 解析返回 HTML,提取 catXXX 勾选框及所属分组。
    • 输出结构化 JSON 与 域名|Base64 字符串。
  7. 点击“复制 Base64”即可完成内容复制,直接粘贴到 MP 的自定义站点索引导入界面。

输出示例

{
  "schema": "NexusPhp",
  "id": "example",
  "name": "Example",
  "domain": "https://www.example.com",
  "search": {
    "paths": [
      { "path": "torrents.php", "method": "get" }
    ],
    "params": {
      "search": "{keyword}",
      "search_area": 0
    },
    "batch": {
      "delimiter": " ",
      "space_replace": "_"
    }
  },
  "category": {
    "category": [
      { "id": 401, "cat": "Movies", "desc": "电影" },
      { "id": 402, "cat": "TV Series", "desc": "电视剧" }
    ]
  }
}

Base64 输出示例:

example.com|ewogICJzY2hlbWEiOiAiTmV4dXNQaHAiIiwgLi4u

自定义分类映射

  • 配置方式:在面板右侧文本框输入 键=值,每行一条。
  • 支持的键
    • cat401(完整 ID)或 401(纯数字),自动兼容。
    • MoviesTV Series 等分类标题。
    • Movies:电影=院线 支持 ID:原文=目标文案 组合。
  • 优先级规则:自定义映射 > CUSTOM_DESC_PRESETS > CATEGORY_LOCALIZATION > 原站文本。

数据持久化

项目 存储键 说明
生成按钮位置 mp_custom_toggler_position 浮动开关按钮的最新坐标
面板位置 panelPosition 通过 setPreference() 记录的面板左上角位置
自定义映射 mp_custom_category_desc 文本框当前内容

上述数据优先使用 GM_setValue / GM_getValue,在不支持的环境下自动回退到 localStorage

错误处理

  • Failed to fetch:通常是未保持与站点相同的协议或子域,调整 Domain 输入后重试。
  • 未能从 getrss.php 中解析到分类:请确认已登录且站点保持默认的 getrss.php 结构。
  • Base64 转换失败:面板会显示详细错误并保留 JSON 输出,可手动复制。

相关代码入口

  • 核心生成逻辑位于 handleGenerate()
  • 分类解析集中在 collectSections()extractOption()
  • 自定义映射解析使用 parseCustomDesc()
  • 面板 / 浮动按钮的拖拽及持久化分别由 enablePanelDrag()enableTogglerDrag() 实现。

版本与许可