更好用的 telegram RSSBot


更好用的 telegram RSSBot

GitHub: GitHub - fengkx/NodeRSSBot: Another Telegram RSS bot but in Node.js Telegram RSS 机器人
Demo: Telegram: Contact @NodeRSS_bot Demo欢迎使用

更好用

  • 可配置项
  • opml 导入导出
  • docker 方便部署

下面是README

使用

基本与 https://github.com/iovxw/rssbot/一致

/rss       - 显示订阅列表,加 `raw`显示链接
/sub       - 订阅 RSS: /sub http://example.com/feed.xml
/unsub     - 退订 RSS: /unsub http://example.com/feed.xml
/unsubthis - 回复一个 RSS 发来的消息退订该 RSS
/allunsub  - 退订所有源
/export    - 导出订阅到opml文件
/viewall   - 查看所有订阅和订阅人数 需要在设置中打开
/import    - 回复此消息 opml 文件导入订阅(群组)

把 bot 设为频道管理员并正确配置权限后,可通过私聊在/sub后加上频道 id 来在频道中订阅 feed
例如 /sub <频道 id > <feed url> (频道 id 是@打头的)

直接发送 opml 文件,可以导入 RSS 源
viewall 只能在私聊中使用

部署

Docker

使用自动构建的 docker image

安装好了 docker 之后

  1. 运行docker pull fengkx/node_rssbot
  2. 运行 docker run --name rssbot -d -v <directory to store database file>:/app/data/ -e RSSBOT_TOKEN=<YOUR_TGBOT_TOKEN> fengkx/node_rssbot

例如 docker run --name rssbot -d -v /var/data:/app/data/ -e RSSBOT_TOKEN=123456:abcdef123456-U fengkx/rssbot

本地构建

  1. 安装 Docker
  2. 克隆仓库 git clone https://github.com/fengkx/NodeRSSBot.git
  3. 构建 docker image docker build . then you will get a image id
  4. 运行 docker run --name rssbot -d -e RSSBOT_TOKEN=<YOUR_TGBOT_TOKEN> <YOUR_IMAGE_ID>

例如 docker run --name rssbot -d -e RSSBOT_TOKEN=123456:abcdef123456-U fd54321bff2

PM2

  1. 首先要有 Node.js 和 npm 或 yarn
  2. 克隆仓库 git clone https://github.com/fengkx/NodeRSSBot.git
  3. 设置 RSSBOT_TOKEN 环境变量,或者直接在 config/index.js 中修改
  4. 安装依赖 在仓库根目录运行npm i
  5. 推荐用 pm2 守护进程 pm2 start index.js 如果没有安装pm2 就先安装 npm i -g pm2

TODO

  • export 命令
  • 代理
  • unit test

配置项

所有配置项都可以用环境变量或者直接在 config/index.js中修改

设置项 环境变量 默认/必填 描述
token RSSBOT_TOKEN require telegram bot token
db_path RSSBOT_DB_PATH data/database.db 数据库文件路径
lang RSSBOT_LANG zh-cn 语言
item_num RSSBOT_ITEM_NUM 10 发送最新几条信息
fetch_gap RSSBOT_FETCH_GAP 5m 抓取间隔
notify_error_count NOTIFY_ERR_COUNT 5 发出通知的错误次数
view_all RSSBOT_VIEW_ALL false 是否开启
UA RSSBOT_UA ‘Mozilla/5.0 NodeRSSBot(GitHub - fengkx/NodeRSSBot: Another Telegram RSS bot but in Node.js Telegram RSS 机器人)’ 请求的 user-agent

语言可以设置为 zh-cn or en
时间间隔可设置为每多少分钟或多少小时。m 表示分钟, h 表示小时

例如 5m 表示每 5 分钟, 1h 表示每 1 小时

/viewall 之后的订阅里面都不能点击订阅啊…点击是打开 feed 地址

该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。

当时是想给这个demo增加的玩法。没有点击订阅,只是展示feed地址而已。
考虑到telegram的markup个数有限制,后面的网址都不能点。以后会分页的。
不过也得考完试之后了
复制然后 /sub 一下呗