# 用 Timery 创建读书统计小组件

> 本文公开全文。

原文：https://utgd.net/article/20221

记录的东西得时不时回看才有意义。

时间记录是个老概念了，我一直尝试在记录，不过我没有把事无巨细的所有事项都纳入记录范围内，主要记录一些阅读相关的时间。因为这类时间相对容易记录，我的大多数阅读都和 app 或电子设备相关。比如读 RSS，就必须打开 Inoreader；读稍后读，就必须打开 Instapaper；读书，也大多数在 Kindle、iBooks 等平台。通过快捷指令就可以简单把时间记录工具（Toggl）和阅读 app 串联起来。

很惭愧的是，以前上学时期看的书不多，最近却想大量恶补式看书。于是想着做一个统计读书时间的小组件放在桌面激励自己。

我原始的思路是：

- 通过 Toggl 的 API 文档 获取统计报表的接口；

- 使用快捷指令的“获取 URL 内容”操作，统计出今年的阅读时长，并计算出阅读书本数量（我的所有读书活动都记录在“读书”这个 project 下，每本书都会创建一个 description 为“《书名》”的计时器）；

- 使用“追加到备忘录”操作，将阅读时长和阅读数量添加到备忘录上；

- 使用快捷指令自动化，让它每天定期运行；

- 将该备忘录添加到桌面小组件。

这个流程比较复杂的是步骤 1 和步骤 2，前者需要重新阅读 Toggl 的 API 文档，找到调用接口的方式；后者需要设计出计算方法，因为获取到的可能是散乱的原始数据。想想就头大。但又转念一想，之前被我删掉的 Timery 是不是也有相关的快捷指令操作。

安装回来一看，果然有，并且功能还很丰富。可以对 Projects、Tags、Description、Client、Tasks 等进行过滤，还能自定义分组方式。

于是我快速添加了本周、本月、今年三个小组件。本周按日期分组，可以看到本周每天的阅读时长。本月按 Desciption 分组，可以看到本月的总阅读时间，以及本月读的每本书所花的时间。今年也是按 Desciption 分组，可以看到今年 Top 7 阅读时长的书籍排序。

由于小组件自己会定期刷新，我也不太需要关注最新的实时数据，把它们放到负一屏偶尔看一下就行。主力还是用 Toggl 官方应用（主要是 Timery 在离线状态下不可用，我在地铁上经常跑不通 Timery）。

通过我原始的自动化思路，也许可以设计出更完美的显示方式，比如把书本数量也显示出来。但我还是选择了更低成本的方案，毕竟我的目的是多读书，而不是本末倒置地研究如何获取 Toggl API，进而把玩一个格式排版精致的桌面小组件。自动化方案，work 就行，不必多加折腾。

---

[前往标准阅读页](https://utgd.net/article/20221?audience=web)
