不知不觉已经使用了微信读书快 10 年,打开笔记页面一看,已经留下了 8000 多条笔记。一直以来,我希望能在桌面上用一个小组件随机回顾我的那些笔记,蓦然回首,重温旧梦。
不过,从 iPhone 等到换了安卓,微信读书官方 App 始终只愿意提供一个官方精选的「每日一句」小组件。句是好句,可惜与我无关。那么只好自己 DIY 一个,借着 AI 的东风,DIY 的过程倒也轻松愉悦。

由于我已不再是一名全职开发者,为长远计,我希望这样一种随机回顾的方式应该简单、免费、免维护。因此最终选择的方案是:
- Obsidian 微信读书插件获取读书笔记
- n8n 服务器构建 API
- Tasker App 在手机上制作小组件
- 通过 Tasker 设置每半小时自动刷新一条笔记,同时支持手动刷新
当然如果没有服务器的话,也可以直接把 Obsidian 里获取的读书笔记读取为 JSON 格式,后续通过 Tasker 随机挑选即可。我因为恰好有一台 Mac Mini 常年开机作为服务器,因此选择了更灵活的服务器/客户端模式。
Obsidian 微信读书插件获取读书笔记
这一步最简单,只需要用 Obsidian 新建一个仓库,安装一个微信读书插件,再登录并同步即可。使用这种方式主要是考虑,比起第三方服务,它免费;比起自己写代码,它是一个成熟的开源方案,免去了自己维护的烦恼,毕竟微信读书并没有公开的 API,随时有需要重新适配的可能。最后,它同步下来的笔记是非常容易处理的纯文本格式,方便后续使用。
例如,一条典型笔记格式如下:
## 第1章 为什么会有人呢?
> 📌 经过选择的例子对任何有价值的概括来说从来就不是重要的证据。
> ⏱ 2019-10-24 12:37:19 ^25731006-9-5914-5943
需要说明的是,这种方式每次同步笔记需要手动操作。不过考虑过据说微信读书对于频繁的程序化访问可能会采取封号措施,以及大量的笔记其中每一条被访问到的概率本身就较小,我认为 1 个月甚至 3 个月一次的手动同步是完全可以接受的。
n8n 服务器构建 API

构建 API 只需要用 n8n 简单构建两个主要步骤,监听请求、随机选取笔记并返回。以上的后两个步骤是为了筛选掉 10 个字以下的笔记——有时我会对个别字词划线,实践中发现回顾字词没有特别的意义。
最主要的步骤是随机选取笔记,这一步实际上只是运行了一条命令:node /home/node/random-quote.js /mnt/host_files。从上一步获取微信读书笔记后,你已经有了一个文件夹,里面满是包含你的笔记的 书名.md 文件,因此要做的就是读取这些文件并随机挑选一条。感谢 AI,把我们从这样繁琐的工作中解放出来,以下是我用的代码: