1. 基本概念
1.1 RSS
当我希望我很多网站更新的时候能推送给我,而不是靠我不定时上网站检查更新的时候,RSS就很有用。
就本质而言,RSS是一种信息聚合的技术,是为了提供一种更为方便、高效的互联网信息的发布和共享,用更少的时间分享更多的信息。
使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持RSS的聚合工具软件,在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。
1.2 RSSHub
了解到RSS后,我们就需要将网站的RSS订阅链接找出来,像有些网站就会直接提供RSS地址,比如本博客:https://syq.pub/feed/ ,还有一些PT类的下载站点。但是也有一些网站是不提供RSS地址的,那么我们就需要借助另一个工具: RSSHub 。
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容。
1.3 Flowerss Bot
一个支持应用内即时预览的 Telegram RSS Bot 。
特点
- 常见的 RSS Bot 该有的功能;
- 支持 Telegram 应用内即时预览;
- 支持为 Group 和 Channel 订阅 RSS 消息;
丰富的订阅设置。
2. 折腾步骤
2.1 准备工作
一台VPS,我这里以甲骨文2c12g arm服务器为例,系统为Debian 11。
对docker,docker compose 有一定的基础认识,本文将采用docker的形式搭建所需要的服务。
对Telegram和Telegram Bot有一定的认识及使用需求。2.2 安装Docker和Docker-compose
curl -fsSL https://get.docker.com | bash -s docker sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
2.3 搭建RSSHub服务和浏览器扩展 RSSHub Radar
懒得自己搭的同学,官方提供的服务是https://rsshub.app/,但是用的人太多,效果不太好,强烈建议自己部署 RSSHub 服务。我这边选择 部署到 Vercel (Zeit Now) ,比较简单,无需提供服务器,仅需要一个github账号即可。
2.3.1 搭建RSSHub服务
首先打开上面RSSHub文档的超链接,点击Deploy。
进入Vercel 部署页面,选择管理github账户
创建你要部署的名称,如RSSHub
然后等待部署完毕
出现这页面的时候表示部署完成
点击图片,跳转的链接即你的RSSHub服务地址:
由于Vercel部署的RSSHub服务,默认地址后缀带vercel.app,我们可以改成我们喜欢的域名,返回刚才创建成功的页面,点击Go to Dashbord
点击 settings
点击Domains,添加你的域名
根据提示在你的DNS服务商添加cname解析,添加完成后,静等片刻,点击Refresh,出现成功提示即可。
2.3.2 安装浏览器扩展 RSSHub Radar
我们需要安装浏览器扩展 RSSHub Radar 来配合RSSHub服务使用,安装过程不重复,项目主页讲得很详细了。
安装完毕后,点击浏览器扩展的图标,选择设置
在自定义域名设置里填入你刚才部署的域名即可
然后随便找一个带有RSS订阅的站点,如https://syq.pub ,复制订阅地址到你的RSS阅读器,即完成了基础的RSS服务搭建及RSS订阅步骤
当然RSSHub的强大功能不仅于此,感兴趣的同学可以到官方文档进一步了解: RSSHub文档 。
2.4 部署 Flowerss Bot 订阅 RSS
安装完RSS服务之后,我们可能需要一个固定获取信息的地方,我这里以Flowerss bot为例。
2.4.1 安装Mariadb作为Flowerss Bot的数据库
- 由于mysql不支持arm,我们选择Mariadb作为数据库,
root
目录下新建docker-compose.yml
,填入以下内容:
version: '3.1'
services:
mariadb:
image: mariadb
restart: always
container_name: mariadb
environment:
MYSQL_DATABASE: "flowerss_bot"
MYSQL_PASSWORD: "123456"
MYSQL_ROOT_PASSWORD: "123456"
TZ: "Asia/Shanghai"
ports:
- 3306:3306
volumes:
- /home/mysql/data:/var/lib/mysql
- /home/mysql/conf:/etc/mysql/conf.d
- /home/mysql/logs:/var/log/mysql
command:
--max_connections=1000
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--default-authentication-plugin=mysql_native_password
如果你看不懂上面的配置,建议你只改动password部分。
安装完成后,验证下数据库是否运行:
docker exec -it mariadb bash
mysql -uroot -p
输入密码,可以看到数据库已运行,退出:
quit
exit
2.4.2 部署Flowerss Bot
直接按照官方文档docker部署的办法
下载配置文件 在项目目录下新建 config.yml 文件
mkdir ~/flowerss &&\ wget -O ~/flowerss/config.yml \ https://raw.githubusercontent.com/indes/flowerss-bot/master/config.yml.sample
修改配置文件
vim ~/flowerss/config.yml
参考如下配置:
bot_token: 你的Telegram Bot Token(必填) telegraph_token: telegraph_account: telegraph_author_name: telegraph_author_url: socks5: update_interval: 10 user_agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 mysql: host: 172.17.0.1 port: 3306 user: root password: 123456 database: flowerss_bot telegram: endpoint: log: level: release db_log: false # 打印数据库日志,false则只会打印数据库错误日志 sqlite: path: ./data.db allowed_users: 你的tg用户id
运行并加入自启
docker run -d --name rssbot -v ~/flowerss:/root/.flowerss indes/flowerss-bot docker update rssbot --restart=always
正常的话就可以使用了,如果没有部署成功,可以用下面命令看一下日志,比如博主就碰到了数据库名字输错了,查日志排查出原因;
docker logs -f rssbot --tail 100
此时在你的RSSbot里输入
/help
,有反馈信息表示安装完成。
2.4.3 Flowerssr bot 的使用
主要分为个人订阅(在Bot里推送)和频道订阅(在频道里推送)flowerss-bot,具体使用可以在 Flowerssr bot 里面使用/help命令查看帮助。
- 个人订阅
- 频道订阅
Step1:将 Bot 添加为 Channel 管理员
Step2:发送相关命令给 Bot
注:ChannelID 只有设置为 Public Channel 才有。如果是 Private Channel,可以暂时设置为 Public,订阅完成后改为 Private,不影响 Bot 推送消息。
拿走了!