GoRss2Webhook开发记录 #1 背景与模块设计
编辑项目地址
https://github.com/Mystery00/GoRss2Webhook
项目需求
RSS是一个获取信息的好的方式,我自己也有在空闲时间打开v2或者rss阅读器阅读文章的习惯,前段时间发现有些朋友的技术能力有点差,就推荐了几篇我以前看过收藏的文章,于是就萌生了定期把我收藏的文章发出来的想法。
最开始是想靠手动的,也就是我看了一篇文章之后,觉得不错就发到群里去,后面发现太容易忘记了,因为我自身看文章的时间也是空闲时间,有时候在路上看内容,有时候就是看了一半去做其他事情,过了一会再回来继续看。于是就萌发了基于RSS来做这个自动分享的想法,整体效果就像 https://t.me/rss_kubernetes 的效果一样
本来我想的是,这么简单的东西,应该有现成的才对,于是找了一波,找到了 Zapier ,收费的,我想要一个可以自部署的,于是,又找到了另一个 https://github.com/skx/rss2hook ,这个很接近我想要的效果了,但是实现太简单了,我想要能够自定义更强一些的东西。
最终,打算自己实现一个!
模块设计
整体模块设计也是很简单的,controller
作为触发器,可以通过cron
或者接口的形式来触发core的逻辑。
core
中会根据配置文件中的订阅rss
配置,发起多个协程去请求rss
源数据。
rss
模块处理源数据,将已经拉取过的条目过滤掉,筛选出需要发送通知的rss
条目。
store
负责整体的存储,rss
订阅、rss
历史记录、webhook
配置,存储可以有多种实现,存储到文件,或者仅仅存储在内存中。
rss
订阅部分考虑到国情,需要能够支持代理、ua
配置,webhook
需要支持自定义Header
以及token
授权。
webhook
部分也可以对接多种现成的接口,比如telegram bot、企业微信bot
等常见的机器人。
RSS服务准备
开发过程中需要经常测试RSS
的效果,因此用上很久之前就自建了的RSSHub。
后续
这一篇文章大概介绍了GoRss2Webhook
诞生的过程,以及我打算做的一个效果,从下一篇文章开始,会渐渐将实现的细节都写出来,也希望自己能够借着这个东西养成写文章的好习惯吧!
- 0
- 0
-
分享