写在前面

首先得知道 RSS 是什么?

RSS(全称:RDF Site Summary;Really Simple Syndication)中文译作,也称聚合内容,是一种消息来源格式规范,用以聚合经常发布更新资料的网站,例如博客文章、新闻、音频或视频的网摘。摘自——维基百科 - RSS

这太官方了,其实通俗点讲就是窃听,比如我订阅一个网站,那网站发布了什么新的内容,就会第一时刻通知我。这就很像设计模式里的 观察者模式

然后某位 “道友” 给我转发了一个项目

images

我一眼就喵上了无需服务器,这和我的想法非常符合!

而且这个项目的初衷就是免费。

images

bai piao 谁不爱呀!

GitHub 地址:pureink/inkrss

前期准备

  1. 安装 node,推荐 12.x 版本,没必要装最新(长期支持版即可)安装完成后在命令行输入 npm -vnode -v ,如返回版本号说明安装成功!

  2. 安装 wrangler,输入 wrangler -V 如返回版本号说明安装成功!

    1
    npm i @cloudflare/wrangler -g
  3. Cloudflare 官网 进行注册账号并验证邮箱成功后,在右侧找到 Workers 并注册一个子域名,例如:xxx.workers.dev

  4. 在命令行输入以下命令进行登录(回车之后输入 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
2
git config --global http.proxy socks5://127.0.0.1:7890
git clone https://github.com/pureink/inkrss

克隆完成后进入项目文件夹里输入以下命令并回车

1
wrangler kv:namespace create "KV"

就会返回 bindingid,复制并粘贴到 ./wrangler.toml 文件里的 kv_namespaces

images

返回到 Cloudflare 官网 点击 Workers ,复制账户 ID 到 ./wrangler.toml 里的 account_id

images

通知方式

目前该项目通知方式有:

  • 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_TOKENTelegram Bot 的 Token,找它 @BotFather 进行创建机器人
发送 /newbot 输入机器人的名字,比如:我的专属 RSS 机器人 ,接着再输入该机器人的标识,比如 my_rss_bot(需以 bot 结尾)然后就出现该机器人的 Token 了
TELEGRAPH_TOKEN用于提供即时预览,请访问此 URL 获得
TG_USERID@userinfobot 对话,获取自己的 ID
TG_SENDID发送对象的 ID,可以是频道,群组或个人

images

最后输入以下命令进行发布

1
wrangler publish

images

访问: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/{你配置的路径}

images

即可开始使用 Bot 进行订阅,注意替换 token 以及 URL

为了方便,我们可以在 BotFather 那里给机器人添加指令

  1. 发送 /mybots,选择你的 RSS Bot

  2. 选择 Edit Bot —> Edit Commands

  3. 向 BotFather 发送

    1
    2
    3
    4
    sub - 订阅
    list - 查看所有订阅
    ...
    ...

过一会,你的机器人就有这些指令了

赶紧发个 /sub https://blog.imzjw.cn/atom.xml 测试一下把!

images

2021-07-29 补充

推荐一个最全的 RSS 订阅源

万物皆可 RSS:RSSHub

总结

我今天也遇到挺多问题的,就当小白鼠了。但是部署成功之后,细想一下

其实这项目还是挺简单的,前置要求都弄好之后无非就是

  1. wrangler kv:namespace create "KV"
  2. 修改根目录下的 config.jswrangler.toml
  3. 修改 ./config/telegram/config.json
  4. wrangler publish

最后作者还说这项目刚问世还不是很完善,有任何问题可以随时提 issues

参考:

特别感谢: