VPS 搭建 Telegram RSS 中文订阅机器人

VPS 搭建 Telegram RSS 中文订阅机器人

申请 Bot

打开Telegram,搜索@BotFather,发送/newbot ,申请一个Bot

然后再输入/mybots找到自己的bot,选择它,然后选择Edit Bot,选择Edit Commands就可以输入你的指令了。

iovxw/rssbot

  • 机器人命令

1
2
3
4
5
rss       - 显示当前订阅的 RSS 列表,加 raw 参数显示链接
sub - 订阅一个 RSS: /sub http://example.com/feed.xml
unsub - 退订一个 RSS: /unsub http://example.com/feed.xml
unsubthis - 使用此命令回复想要退订的 RSS 消息即可退订, 不支持 Channel
export - 导出为 OPML
  • 拿来主义

可直接从 Releases 下载预编译的程序, Linux 版本为 musl 静态链接, 无需其他依赖。

1
2
3
4
$ wget https://github.com/iovxw/rssbot/releases/download/v1.4.4/rssbot-v1.4.4-linux.zip
$ yum install unzip
$ unzip rssbot-v1.4.4-linux.zip
$ ./rssbot DATAFILE <TELEGRAM-BOT-TOKEN>
  • 自力更生

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# CentOS 系统
$ yum -y update && yum -y install gcc make openssl* pkg* libssl* screen curl
# Ubuntu、Debian 系统
$ apt-get -y update && apt-get -y install gcc make openssl pkg-config libssl-dev screen curl
# 安装 Rust Nightly (https://rustup.rs/)
$ curl https://sh.rustup.rs -sSf | sh //安装后 重启下
# 安装 rssbot
$ wget https://github.com/iovxw/rssbot/archive/v1.4.4.tar.gz
$ git clone https://github.com/iovxw/rssbot.git //同以上命令
$ tar xvf v1.4.4.tar.gz
$ cd rssbot-1.4.4
$ cargo build --release
# 运行 rssbot
$ cd target/release
$ screen -S rssbot
$ ./rssbot DATAFILE <TELEGRAM-BOT-TOKEN>

indes/flowerss-bot

  • 机器人命令

1
2
3
4
5
6
7
8
9
10
11
12
13
sub - [url] 订阅(url 为可选)
unsub - [url] 取消订阅(url 为可选)
list - 查看当前订阅
set - 设置订阅
check - 检查当前订阅
setfeedtag - [sub id] [tag1] [tag2] 设置订阅标签(最多设置三个Tag,以空格分隔)
setinterval - [interval] [sub id] 设置订阅刷新频率(可设置多个sub id,以空格分隔)
activeall - 开启所有订阅
pauseall - 暂停所有订阅
import - 导入 OPML 文件
export - 导出 OPML 文件
unsuball - 取消所有订阅
help - 帮助
  • Token 申请

1
curl https://api.telegra.ph/createAccount?short_name=flowerss&author_name=flowerss&author_url=https://github.com/indes/flowerss-bot
  • docker 安装

1
docker run -d -v ~/data/flowerss:/var/flowerss indes/flowerss-bot -b <bot token> -t <telegraph token 可省略>
  • 二进制部署(推荐)

Releases 页面下载对应的版本解压到 usr/local/bin 目录下,chmod +x 赋权。

/root/rssbot/config.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bot_token: 84xxxxx:AAHUxxxxxxxxxxxxxxxxxxxxx
telegraph_token:
- 4cdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- 1f82xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
preview_text: 120
disable_web_page_preview: false
socks5:
update_interval: 5
error_threshold: 100000
telegram:
endpoint:
mysql:
host:
port:
user:
password:
database:
sqlite:
path: /root/rssbot/data.db
log:
db_log: false
allowed_users:
  • 测试

1
2
3
4
5
6
cd rssbot
chmod +x flowerss-bot
nohup ./flowerss-bot &
jobs -l
netstat -atunp
kill -9 $(pidof flowerss-bot)
  • 创建服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cat > /etc/systemd/system/rssbot.service <<EOF
[Unit]
Description=The Rssbot Service
After=network.target
Wants=network.target

[Service]
Type=simple
PIDFile=/var/run/rssbot.pid
WorkingDirectory=/root/rssbot
ExecStart=/root/rssbot/flowerss-bot
RestartPreventExitStatus=23
Restart=always

[Install]
WantedBy=multi-user.target
EOF
  • 开机启动

1
2
3
4
systemctl daemon-reload
systemctl start rssbot
systemctl status rssbot
systemctl enable rssbot
  • 订阅频道举例

  1. 将 Bot 添加为 Channel 管理员
  2. 发送相关命令给 Bot

Channel 订阅支持的命令:

1
2
3
4
5
6
7
8
9
10
/sub @ChannelID [url] 订阅
/unsub @ChannelID [url] 取消订阅
/list @ChannelID 查看当前订阅
/check @ChannelID 检查当前订阅
/unsuball @ChannelID 取消所有订阅
/activeall @ChannelID 开启所有订阅
/setfeedtag @ChannelID [sub id] [tag1] [tag2] 设置订阅标签(最多设置三个Tag,以空格分隔)
/import 导入 OPML 文件
/export @ChannelID 导出 OPML 文件
/pauseall @ChannelID 暂停所有订阅

转换频道订阅链接

频道

路由: /telegram/channel/:username/:searchQuery?

参数:

  • username, 必选 - 频道 username
  • searchQuery, 可选 - 搜索关键词, 如需搜索 tag 请用 %23 替代 #

提示

由于 Telegram 限制,部分涉及色情、版权、政治的频道无法订阅,可通过访问 https://t.me/s/:username 确认。

1
https://harlon.me/rsshub/telegram/channel/NewlearnerChannel

对机器人使用命令

订阅

1
/sub @harlon_rss https://harlon.me/rsshub/telegram/channel/NewlearnerChannel

退订

1
/unsub @harlon_rss https://harlon.me/rsshub/telegram/channel/NewlearnerChannel
  • 编译安装

go 官方下载页面 https://golang.org/dl/

1
2
3
4
5
6
7
8
9
10
wget https://golang.org/dl/go1.15.3.linux-amd64.tar.gz
tar -C /usr/local/ -zxvf go1.15.3.linux-amd64.tar.gz
apt install make -y
nano ~/.profile
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
source ~/.profile
git clone https://github.com/indes/flowerss-bot && cd flowerss-bot
make build
cp flowerss-bot /usr/local/bin/