链接: https://github.com/yllhwa/RSSWorker
主要灵感来源是 RSSHub(非常齐全)。
我想每次刷新就拿到最新的内容(不要缓存),但是又不想折腾反爬问题,所以就在 Cloudflare Worker 上面跑一个。
路由支持
目前只支持了我自己用的几个:
不过添加支持很简单,因为都是 js ,格式也差不多,可以很轻松地从 RSSHub 的代码迁移过来(微博相关就是直接 copy 的 RSSHub )。
其他
我重度使用的是 bilibili 的路由,所以很 hack 地用 fetch api 手搓了一个 grpc 请求( bilibili 对 grpc 的反爬不严格)。
因为刚入坑 RSS ,所以可能很多细枝末节的东西没有考虑到,欢迎提 issue 和 pr 。
使用的一些工具
Cloudflare Worker 有打包 gzip 压缩后的文件大小限制(免费用户 1 MB ,付费用户 10MB ),所以需要尽量用 Cloudflare Worker 提供的接口,比如 HTML 解析使用 HTMLRewriter 等。
然后就是构造 bilibili 的 grpc 请求用了第三方的库@bufbuild/buf,因为官方的在 Worker 环境下面跑不起来。
路由框架使用的是 Hono , 模板引擎则使用 mustache ( Worker 环境好像不能使用带 eval 的库)
感想
Cloudflare 确实牛, 不过这个 Worker 环境比较特殊,基础设施还是好多没有建设好,好多地方要手搓。