每个热爱 RSS 的人都会面临这道砍,而 WeWe RSS 是一个相对优雅的选择。

一点背景

基于 RSS 搭建阅读系统面临的问题之一,是难以兼顾微信生态中的丰富资讯。其中部分有深度价值的内容只此一处,而在开放世界中难寻。

RSSHub 上的微信路由似乎总在 404,曾经好用的第三方订阅源也因为各种原因不再运营(或对新用户开放)。因此在很长一段时间内,我的阅读系统被割裂为 RSS + 微信两部分。

然而公众号推送机制迭代至今天,“订阅”一个公众号已经越来越像“关注”一个社交账号,想注意到更新提醒也需要一些缘分,“已读/未读”功能更是奢求。

还好 今年三月份 WeWe RSS 项目上线,至今已更新半年有余,为有需要的人提供了一个选择。在少数派 RSS 相关文章的评论区出现过,但还缺少一篇正式介绍的文章。

故有此文。

风险提示

处于重重限制下的 WeWe RSS 并不完美,所以有必要先把已知问题罗列出来:

1. 代码并非开源

按照一些渠道的说法,该项目是“不完全开源”;按照作者的说法以及查阅代码,是部分接口请求经过专用服务器转发。只是严格按照开源精神,不完全开源就是不开源,是被特殊处理的“社区版本”。

介意的话,可以注册一个专用的微信号。作者给我们一个方案,我们借他一个账号,"价格”
透明。

2. 订阅数量有限

WeWe RSS 在底层使用了微信读书的接口,关注公众号太多或刷新频率超限都会触发验证码机制(有在微信读书刷公众号的朋友应该遇到过),持续触发还会被关小黑屋。

按照项目 Issues 中的交流,这个限制大概在 10 个公众号乘上每天刷新两次左右。如果需要关注更多公众号,最好按此比例提供更多账号。

3. 项目寿命存疑

从过往历史看,微信公众号的订阅源易暴毙。仅从 GitHub Issues 角度看,该项目存量 issues 已达 160 个(作为对比,项目复杂度更高、影响范围更广的 RSSHub 此时为 300),而维护者就作者一人,不禁令人担忧。

这点无解。好在基于 Zeabur 或 Docker 部署项目十分简便,值得一试。

主要功能

权衡完利弊,WeWe RSS 不失为一种更优雅的选择。使用起来非常简洁直接:

1. 授权微信账号

在账号管理页面添加微信读书账号。点击按钮弹出二维码,微信或微信读书扫码即可完成登录。后续 WeWe RSS 将在特定时间用该账号信息拉取公众号更新。

账号管理页面

2. 关注微信公众号

在公众号源页面添加公众号源。这里作者为了简化用户操作,只要求用户提供该公众号下的一篇文章的短链接(形如 https://mp.weixin.qq.com/s/xxxxxx),系统会在后台解析该公众号的 ID。

公众号源页面

3. 单独或全部订阅即可

完成订阅后即可在公众号源页面打开 RSS 链接,支持单个公众号订阅和全部订阅两种方式。修改订阅链接最后的格式后缀,可获取 .atom / .rss / .json 等不同格式的输出。

部署方式

若非要进行本地开发,作者首推了两种方式进行部署:

1. Zeabur

没有或懒于维护服务器资源的,可以有限考虑 Zeabur 方案(少数派的双十一还在,传送门:https://sspai.com/post/93669)。

Zeabur 的底层运行在各大公有云上,也不太容易被针对反爬。

2. Docker Compose

需要更自由控制的话可以用 Docker 镜像。分享一下我的 Compose 文件,和 Fresh RSS 联合部署,订阅的时候需要注意把根路径替换为 wewe-rss:4000

services:
    freshrss:
        image: freshrss/freshrss:latest
        restart: always
        ports:
            - 127.0.0.1:3001:80
        volumes:
            - freshrss-data:/var/www/FreshRSS/data
            - freshrss-extensions:/var/www/FreshRSS/extensions
        environment:
            CRON_MIN: 13,43
            TZ: Asia/Shanghai
    wewe-rss:
        image: cooderl/wewe-rss-sqlite:latest
        restart: always
        ports:
            - 127.0.0.1:3002:4000
        volumes:
            - wewe-rss-data:/app/data
        environment:
            DATABASE_TYPE: sqlite
            AUTH_CODE:
            MAX_REQUEST_PER_MINUTE: 60
            FEED_MODE: fulltext
            CRON_EXPRESSION: 41 5,17 * * *
volumes:
    freshrss-data:
    freshrss-extensions:
    wewe-rss-data:

从配置上可以看到我没有直接暴露端口,外网访问还需要通过 Nginx 反向代理另行配置。这里综合考虑了宿主系统上的其他服务,仅供参考~

尾巴

这篇短文就到这里。相信其实大多数有意愿的朋友已经在使用了,但总感觉如果社区里没有这篇文章好像少了点什么。

项目链接放在这里,更多问题欢迎留言交流~