先放地址:https://github.com/fengkx/NodeRSSBot
作为一个 Telegram 重度使用者。非常喜欢用 Telegram 订阅通知类型的 RSS 或者低频更新的博客。之前一直用的是这个 Bot。它是用 Rust 写的。之所以造这个轮子最早是因为 Rust 版的 Bot 的 Release 不能在我当时的一个 VPS 上跑。Rustup 一波工具链下载编译下来把本来就小的硬盘给撑满了。再加上不能方便地自定义抓取时间间隔于是便造了这么个轮子。 最初设计的用法都高仿 Rust 版的 Bot。借助 Docker 可以很方便的部署,不用操心编译和环境问题。
但是如果你赏脸点进去看,可能会发现这已经是 9 个月前的事了。9 个月的时间里也有了不少的改进。同时demo也保持了稳定地运行。有效用户 189 人。有效订阅源 1000 个。于是在这里分享一下做出的改进吧。
更多的可配置项。例如抓取间隔 view_all 等 更多配置项可见 https://github.com/fengkx/NodeRSSBot#配置项
多语言支持。开坑的时候就已经考虑了多语言的支持。有赖于 GitHub 上的贡献者的帮助现在 Bot 支持中(简繁)英西四种语言选项。并可以通过/lang
命令自由切换
opml 格式的导入导出。 /import
和 /export
指令。值得注意的是,为群聊 import 需要在对应群聊中通过reply
向 Bot 发送 opml 格式文件。 而为 Channelimport
则需要修改 opml 文件名为形如@频道 id.opml
并在私聊中发送。
更好的交互界面。 /rss 等的命令支持按键翻页 /unsub 可弹出按键供解除订阅
针对 Telegram 场景的用户生成 RSS 的输出优化。 此处以RSSHub为例。RSSHub 生成的 RSS 不同于站点生成的 RSS 在部分路由中存在未转义的 HTML 字符。由于 Telegram 有支持部分的 HTML 语法,所以会导致含有这些字符的消息无法发出。针对这些字符进行转义 https://github.com/fengkx/NodeRSSBot/issues/57
另外,部分 RSS 路由例如 GitHub trending 标题中存在一些换行符 \n。在浏览器 base 的 RSS 阅读器中并不会有什么问题。因为 HTML 中的换行是 BR tag, 但是在 Telegram 中 \n 会被当作有效的换行符对待。这就导致了在 Rust 版 RSSBot 会产生这样的输出。
NodeRSSBot 会对换行符做处理而产生正常的输出。
1
fengkx OP 两有一处小改进忘记了。
1. 按行分割的链接批量订阅 2. 通过 rel="alternate" type="application/atom+xml" 自动识别并订阅。 例如 v2ex.com 中有 <link rel="alternate" type="application/atom+xml" href="/feed/tab/tech.xml" /> 使用 /sub https://www.v2ex.com 会自动订阅到 https://www.v2ex.com/feed/tab/tech.xml |
2
B1ock 2019-10-01 00:38:39 +08:00
图都裂了 qwq
|
3
chouj 2019-10-01 09:00:46 +08:00
感谢,一直在用。
|
4
wujunze 2019-10-01 09:58:08 +08:00
牛
|
5
ifwangs 2019-10-01 12:09:08 +08:00
希望能支持 instant view
|
7
fengkx OP |
8
fengkx OP @ifwangs 更喜欢一个应用做好一件事。Telegram 的优势在于它作为一个 IM 的及时性和通知能力。还有就是可以用在群聊之中做通知提醒,还有在群聊中订阅群主题相关的 feed 增加讨论度的功能。 所以我多在 Bot 里订阅通知类或者低频更新的博客。特别不喜欢微信公众号那种方式。就是想方设法把用户留在应用内,公众号阅读时如果想要回消息只能用浮窗这种方式。我个人认为很奇葩很不好用。阅读还是用浏览器的好。
|
9
ytbcsyzf 2019-10-02 09:24:49 +08:00 via Android
墙太高了
|
10
n3yKZn7vykSRL0xz 2019-10-04 18:53:09 +08:00 via iPhone
测试订阅了 V2EX 的 rss 一直没推送 自己部署的也是😶
|
11
fengkx OP @K1ri7o 实测有推送
Demo ![v22.png]( https://i.loli.net/2019/10/06/rNMsoF67LEcHOgP.png) 自建 ![v2ex.png]( https://i.loli.net/2019/10/06/BCrSE4lZue12NHX.png) |