介绍一款可免费搭建属于自己的 RSS 服务
写在前面
首先得知道 RSS 是什么?
RSS(全称:RDF Site Summary;Really Simple Syndication)中文译作,也称聚合内容,是一种消息来源格式规范,用以聚合经常发布更新资料的网站,例如博客文章、新闻、音频或视频的网摘。摘自——维基百科 - RSS
这太官方了,其实通俗点讲就是窃听,比如我订阅一个网站,那网站发布了什么新的内容,就会第一时刻通知我。这就很像设计模式里的 观察者模式
然后某位 “道友” 给我转发了一个项目
我一眼就喵上了无需服务器,这和我的想法非常符合!
而且这个项目的初衷就是免费。
bai piao 谁不爱呀!
GitHub 地址:pureink/inkrss
前期准备
安装 node,推荐 12.x 版本,没必要装最新(长期支持版即可)安装完成后在命令行输入
npm -v
或node -v
,如返回版本号说明安装成功!安装
wrangler
,输入wrangler -V
如返回版本号说明安装成功!1
npm i @cloudflare/wrangler -g
在 Cloudflare 官网 进行注册账号并验证邮箱成功后,在右侧找到
Workers
并注册一个子域名,例如:xxx.workers.dev
在命令行输入以下命令进行登录(回车之后输入 y)就会跳转到浏览器进行授权
1
wrangler login
但也会有特殊情况,如果授权后,命令行没有收到返回的
token
的情况下,可以使用以下方式进行登录1
wrangler config
然后浏览器打开 api-tokens 选择创建令牌,令牌模式选择编辑 Cloudflare Workers
其中账户资源选择【所有账户】区域资源选择【所有区域】其他选项保持默认即可,接着把生成好的 token 复制粘贴到命令行中并回车。
如果
wrangler login
能成功收到返回的 token 可忽略这一步!
部署
首先克隆项目
1 | git clone https://github.com/pureink/inkrss |
如您当前的网络环境克隆的非常慢,可以使用某宝的加速链接
1 | git clone https://github.com.cnpmjs.org/pureink/inkrss.git |
或者也可以配置戴笠,然后再进行克隆
1 | git config --global http.proxy socks5://127.0.0.1:7890 |
克隆完成后进入项目文件夹里输入以下命令并回车
1 | wrangler kv:namespace create "KV" |
就会返回 binding
和 id
,复制并粘贴到 ./wrangler.toml
文件里的 kv_namespaces
返回到 Cloudflare 官网 点击 Workers
,复制账户 ID 到 ./wrangler.toml
里的 account_id
通知方式
目前该项目通知方式有:
- Telegram(包括即时预览和机器人订阅,功能丰富,受限于网络)
- Bark(部署最便捷,受限于平台)
- Wechat(部署较麻烦,仅支持纯文本,适用性广)
作者说后续会支持 Slack,Discord,钉钉等其他通知方式。
而本文就讲一个 Telegram 的方式,其它的自己琢磨一下就会了。
首先在 ./config.js
修改 mode 为你想要的通知方式,本文就讲 telegram,故这里填 telegram,随后修改 ./config/telegram
文件夹下的 config.json
根据 readme.md 进行参数配置。
这里我粗略讲下:
参数 | 含义 |
---|---|
SECRET_PATH | 就是个路径(注意:不是网址,是路径,例如:abc、sub、123) |
PARSE_URL | 解析 XML 的 API,可以适量使用作者的 API 接口:https://inkrssparse.vercel.app 不过建议还是自建,参考文档 注意事项里的 第 4 条 (Vercel 就好像免费 100 G 流量,个个都用作者接口的话…) |
TG_TOKEN | Telegram Bot 的 Token,找它 @BotFather 进行创建机器人 发送 /newbot 输入机器人的名字,比如:我的专属 RSS 机器人 ,接着再输入该机器人的标识,比如 my_rss_bot (需以 bot 结尾)然后就出现该机器人的 Token 了 |
TELEGRAPH_TOKEN | 用于提供即时预览,请访问此 URL 获得 |
TG_USERID | 与 @userinfobot 对话,获取自己的 ID |
TG_SENDID | 发送对象的 ID,可以是频道,群组或个人 |
最后输入以下命令进行发布
1 | wrangler publish |
访问:https://ink-rss.xxx.workers.dev/{你配置的路径}
Telegram Bot 配置
目前仅支持四个命令(还没有做完)
/sub:订阅,例:
/sub https://blog.imzjw.cn/atom.xml
/list:查看所有订阅
/unsub:取消某个订阅,例:
/unsub https://rsshub.app/v2ex/topics/latest
/unsuball:取消所有订阅
使用 Telegram 不仅可以使用网页,还包含借助 Telegraph 提供的即时预览功能(instant view)以及一个提供增删查功能的机器人。部署成功后访问
https://api.telegram.org/bot<your token>/setwebhook?url=https://ink-rss.xxx.workers.dev/{你配置的路径}
即可开始使用 Bot 进行订阅,注意替换 token 以及 URL
为了方便,我们可以在 BotFather 那里给机器人添加指令
发送 /mybots,选择你的 RSS Bot
选择 Edit Bot –> Edit Commands
向 BotFather 发送
1 | sub - 订阅 |
过一会,你的机器人就有这些指令了
赶紧发个 /sub https://blog.imzjw.cn/atom.xml
测试一下把!
总结
我今天也遇到挺多问题的,就当小白鼠了。但是部署成功之后,细想一下
其实这项目还是挺简单的,前置要求都弄好之后无非就是
wrangler kv:namespace create "KV"
- 修改根目录下的
config.js
与wrangler.toml
- 修改
./config/telegram/config.json
wrangler publish
最后作者还说这项目刚问世还不是很完善,有任何问题可以随时提 issues
参考:
特别感谢: