article_image

曾几何时,买完票、订完酒店就自动或者半自动添加日程,是再正常不过的事情:前有 Siri 帮你自动寻找日程,后有一些 Shortcuts 玩家将订票信息添加到日历。

很不幸,这点自由似乎触怒了某些“从菜贩子手里抢流量”的厂商,不知从何时开始,主流出行服务不再通过短信发送信息,在 App 内部也把订单信息搞得花里胡哨,仿佛为了让你多买点废品回去而召集了全世界最聪明的建筑师的超级市场。

Alt text
现在的出票短信完全是废物

万幸,日程信息高度结构化,只要获得地点、日期、起止时间等数据,很容易组装成型。当下虽然难以直接获得文本,但服务商起码得把信息显示在屏幕上吧!本文遂从 OCR(光学字符识别)切入,介绍一套截图并生成日程的 Shortcuts 方案。

使用方式

因各个软件布局不一,不可能用一个 Shortcuts 照顾到所有软件——或许 GPT 可以吧,但那么简单的事情居然要乞援人工智能,完全可以说是“第三次人类集体自杀未遂”了——本文仅以支付宝中的飞猪购票服务为例,测试时间为 2023 年五一假期。显然,这段时间频繁的航班和车次是我撰写本文的直接原因。

首先,在支付宝的卡包中寻找已经购买的车票或机票,检查您所看到的界面和下图是否布局一致,如有变动,请先参照下一节修改 Shortcuts 动作。我们所需的绝大多数信息都在卡包界面中。

Alt text
在卡包中查看行程信息

接着,呼出 Spotlight,搜索并运行示例动作,旋即马上返回卡包界面——Shortcuts 会在两秒后截取当前画面,并提取其中的所有文本。

Alt text
OCR 识别航班信息并添加为日程

随后,Shortcuts 逐行列出识别到的文本,其中只有日期、起止时间、地点和班次信息为示例动作所需,勾选即可。紧接着,Shortcuts 会将前述信息以 依次填入日程模板,在最终确定添加日程之前,还可以在添加界面作必要修改,例如手动创建日程名。

原理简析

本文动作改编自第28期会员栏目,当时我为了对付不给复制商品信息的购物软件,写了一个 Shortcuts 动作,从屏幕上剥离文字。有些 Shortcuts 动作,最终被证明是玩具;而这类获取数据类的 Shortcuts 动作,就像一根水管或者一段导线,只要稍稍修改后续步骤,往往会发挥出远超预期设计的用途。1我在《扩张的禁欲主义与内包的享乐主义——论工具的两种类型》中讨论过这种现象,或许在设计自动化工具的时候,也要为延伸留下空间。

同样是难以获得文本信息,但只要尚有可能从屏幕上提取文字,就有自动化可能。打通数据获取环节后,只不过是整理和应用数据,挑出需要的信息填入日程模板。选取数据后获得的是一个列表,辅以“Get item from list”步骤,即可从列表中挑出任意一项。

Alt text
Shortcuts 步骤

添加日程的 Shortcuts 步骤已经预先挖好了一系列空格,备妥各项数据后,像做情人节巧克力一样,把原料往模具里一倒,再稍稍修整,行程就添加到了日历中。


  1. 有读者指出,其实 iOS 截图界面可以直接抓文字,仅从这一点看来,似乎原本那篇文章完全成了庸人自扰。其实不然,拥有管道属性的动作,即便其本身没有用处,但也可以打通后续操作。

author_avatar

Lawyer, macOS/iOS Automation Amateur