先放地址: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 会对换行符做处理而产生正常的输出。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.