📡 Universal RSS Pro for KoishiUniversal RSS Pro 是一个专为 Koishi 设计的高级 RSS 订阅插件。
它针对 X (Twitter)、Pixiv、Bilibili 等富媒体及强反爬平台进行了深度优化,解决了通用 RSS 插件常见的“图片裂图”、“排版混乱”以及“Twitter 无法抓取”等痛点,并支持灵活的多级 Cookie 管理机制。## ✨ 核心特性- 🖼️ 原生级排版:自动解析 HTML,将图片转换为 Koishi 原生图片消息,拒绝乱码。- 🛡️ 防盗链破解:支持 Bot 代理下载图片,解决 Twitter/Pixiv 图片 403 裂图问题。- 🍪 多级 Cookie 管理:支持全局、源站(域名)、单条订阅三级 Cookie 配置,满足不同账号需求。- 🧩 智能去重:基于 GUID 去重,支持并发轮询,通过数据库持久化状态。
---## 🛠️ 安装与前置要求
在启用本插件之前,请确保您的环境满足以下条件:### 1. 安装依赖
本插件依赖 cheerio 进行 HTML 解析,依赖 rss-parser 处理订阅源。请在 Koishi 根目录下运行:```bash
yarn add cheerio rss-parser
或者
npm install cheerio rss-parser
- 准备数据源 (RSSHub)
强烈建议使用自建 RSSHub 服务。
官方的 rsshub.app 对 Twitter 等社交媒体通常不可用。
Tip: 如果您需要订阅 Twitter,请务必在 RSSHub 服务端配置 TWITTER_AUTH_TOKEN 和 TWITTER_CT0 环境变量。
⚙️ 配置说明
在 Koishi 控制台的 插件配置 页面,您可以调整以下参数:
配置项说明推荐值endpoint(核心) 您的 RSSHub 地址(末尾不要带 /)http://127.0.0.1:1200downloadImages是否由 Bot 下载图片后再发送(解决防盗链)true (开启)imageLimit单次更新推送的最大图片数量9domainCookies(进阶) 针对特定关键词的 Cookie 池见下方详解interval轮询检查间隔(秒)300debug是否输出详细调试日志false💻 指令手册
- 添加订阅
Bash
rss.add <路由或URL> <名称> [-c cookie]
路由:可以是完整 URL,也可以是 RSSHub 的简写路由(如 /twitter/user/Example)。
名称:给订阅起个名字,需在当前频道内唯一。
-c 选项:(可选) 为该订阅指定专属 Cookie。
示例:
Bash
基础用法
rss.add /bilibili/user/dynamic/123456 B站动态# 订阅 Twitter (使用全局/服务端 Cookie)
rss.add /twitter/user/elonmusk/exclude_replies 马斯克推文# 高级用法:使用特定账号 Cookie 订阅
rss.add /twitter/user/someone 私密关注 -c "auth_token=...; ct0=..."
- 删除订阅
Bash
rss.del <名称>
- 查看列表
Bash
rss.list
查看当前频道的订阅列表。
带有 🔐 图标表示该订阅使用了专属 Cookie。
- 测试订阅
Bash
rss.test [名称]
不填名称:测试当前频道的所有订阅。
填名称:立即抓取该订阅的最新一条内容并发送(无视去重),用于调试。
🔑 Cookie 管理策略
本插件采用 3级 Cookie 匹配机制,优先级从高到低如下:
- 订阅级 (Priority: High)
通过 rss.add -c "..." 指令添加。
场景:特定群聊需要订阅 Pixiv R-18 内容(需要会员 Cookie),或区分不同马甲号的订阅。
权重:最高,强制使用该 Cookie。
- 源站级 (Priority: Medium)
在插件配置的 domainCookies 中设置。
配置方式:
键 (Key): 路由关键词,例如 pixiv。
值 (Value): Cookie 字符串。
场景:为所有 Pixiv 订阅统一配置 PHPSESSID。
- 服务端/全局级 (Priority: Low)
推荐直接在 RSSHub 的 Docker 环境变量 中配置。
场景:Twitter (X) 等强风控平台。
说明:这是最稳定的方式,RSSHub 会自动处理轮询和缓存。
📱 常见场景教程
场景 A:订阅 X (Twitter) 博主
前提:RSSHub 服务端已配置好 Twitter 环境变量。
获取博主 ID(如 elonmusk)。
发送指令:
Plaintext
rss.add /twitter/user/elonmusk/exclude_replies 马斯克动态
(注:/exclude_replies 表示不看回复,只看主贴)
场景 B:订阅 Bilibili UP 主
获取 UP 主 UID。
发送指令:
Plaintext
rss.add /bilibili/user/dynamic/406796130 罗翔动态
❓ 常见问题 (FAQ)
Q: 提示 Service Unavailable 或 Twitter API is not configured?
A: 这意味着 RSSHub 无法访问 Twitter。请检查您的 RSSHub docker-compose.yml 文件,确保 TWITTER_AUTH_TOKEN 和 TWITTER_CT0 已正确填写并重启容器。
Q: 能够收到文字,但图片发不出来?
A: 1. 确保插件配置中 downloadImages 已开启。
- 检查您的服务器网络是否能访问外网图片地址(如 pbs.twimg.com)。
Q: 如何获取 Twitter Cookie?
A: 1. 浏览器按 F12 打开开发者工具。
进入 Application (应用) -> Cookies。
找到 https://x.com,复制 auth_token 和 ct0 的值。
拼接格式:auth_token=xxxx; ct0=xxxx。
