MCPcopy Index your code
hub / github.com/easychen/ai-rss

github.com/easychen/ai-rss @1.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.0.1 ↗ · + Follow
13 symbols 40 edges 3 files 3 documented · 23%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AI RSS

AI RSS 是一个通过 AI 将网页内容转换为 RSS 订阅源的工具。

它包含两部分:

  1. 一个浏览器插件,可以选择网页中的列表,并指定每一个数据项,最后生成一个 SDD(结构化数据描述) 文件
  2. 一个服务器,可以部署到 Vercel 和 Docker/NAS 上,它读取 SDD 文件,根据配置抓取网页内容并分析,最终生成 RSS 订阅源

在浏览器插件中,用户可以一键发布 SDD 文件到服务器。

浏览器插件

准备工作

由于我们使用了AI的能力来分析网页内容,所以需要先注册一个 OpenAI/API2D/SillconFlow 的账号,并获取一个 API Key。

安装

支持 Chrome 和 Edge 浏览器。

  1. 插件商店上架中,敬请期待。
  2. 在Releases页面下载插件包,解压后,在浏览器中打开 chrome://extensions/ 页面,点击 "加载已解压的扩展程序",选择解压后的文件夹。

服务器

服务器支持两种部署方式:Vercel 和 Docker。

Vercel 部署

Deploy with Vercel

  1. 点击上方的 "Deploy with Vercel" 按钮
  2. 部署时需要设置以下环境变量:
  3. ADD_KEY: 设置一个添加 RSS 的 API 访问密钥
  4. CACHE_MINUTES: 设置缓存时间(分钟),不设置则不缓存

  5. 创建并连接 Blob 存储:

  6. 部署完成后进入 Vercel 项目控制台
  7. 转到 "Storage" 标签页
  8. 点击 "Create Blob Store"
  9. 在项目的 storage 标签页选择新创建的 Blob 存储,点击 "Connect to Project"

Docker 部署

我们提供两种 Docker 部署方式:使用 Docker Compose 或直接使用 Docker 命令。

使用 Docker Compose(推荐)

  1. 创建一个工作目录并进入:
mkdir -p ai-rss-server
cd ai-rss-server
  1. 下载 Docker Compose 文件:
wget https://raw.githubusercontent.com/easychen/ai-rss/master/server/docker-compose.yml
  1. 创建一个 .env 文件,并添加以下环境变量:
ADD_KEY=your_api_key
CACHE_MINUTES=60

或者手工修改 docker-compose.yml 文件中的环境变量:

  environment:
    - ADD_KEY=your_api_key
    - CACHE_MINUTES=60
  1. 启动 Docker Compose:
docker-compose up -d

使用 Docker 命令

  1. 下载 Docker 镜像:
docker pull easychen/ai-rss-server:latest
  1. 运行 Docker 容器:
docker run -d --name ai-rss-server -e ADD_KEY=your_api_key -e CACHE_MINUTES=5 easychen/ai-rss-server:latest

API 说明

主要接口:

  • GET /rss/:name: 获取指定的 RSS feed
  • POST /add-sdd: 添加新的 SDD 配置(需要 API 密钥)
  • GET /list: 获取所有可用的 RSS feed 列表(需要 API 密钥)

授权

API 密钥可以通过以下两种方式传递:

  1. 通过 Header 传递:
X-Add-Key: your_api_key
  1. 通过 URL 查询参数传递:
?key=your_api_key

接口详情

1. 获取 RSS Feed

GET /rss/:name
  • 参数:
  • name: RSS feed 的唯一标识符
  • 返回:RSS XML 内容
  • 无需授权

2. 添加 SDD 配置

POST /add-sdd
  • Header:
  • Content-Type: application/json
  • X-Add-Key: your_api_key(必需)
  • 请求体:
{
  "sdd": {
    "version": "1.0",
    "url": "网页URL",
    "title": "标题",
    "data_list": "...",
    "data_list_elements": "...",
    "rss": "..."
  }
}
  • 返回示例:
{
  "success": true,
  "key": "生成的唯一key",
  "rss_url": "/rss/unique_key"
}

3. 获取 RSS Feed 列表

GET /list
  • 授权:需要通过 Header 或 URL 参数提供 API 密钥
  • 返回示例:
{
  "success": true,
  "total": 2,
  "items": [
    {
      "key": "unique_key1",
      "title": "Feed 标题",
      "url": "原始网页URL",
      "rss_url": "RSS feed URL",
      "favicon": "网站图标URL"
    },
    // ...
  ]
}

许可证

MIT

Core symbols most depended-on inside this repo

validateAuth
called by 4
server/api/index.js
normalizeUrl
called by 3
server/api/feed.js
generateUniqueKey
called by 2
server/api/index.js
getCacheKey
called by 2
server/api/feed.js
validateSDD
called by 1
server/api/index.js
validateReadLater
called by 1
server/api/index.js
getPageHtml
called by 1
server/api/feed.js
getCache
called by 1
server/api/feed.js

Shape

Function 10
Method 2
Class 1

Languages

TypeScript77%
PHP23%

Modules by API surface

server/api/feed.js6 symbols
server/api/index.js4 symbols
RoboFile.php3 symbols

For agents

$ claude mcp add ai-rss \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact