


























所谓人工智能,主要靠的是人工。
——开了个玩笑。不过,实现智能化剪贴板,的确需要许多人工的成分。
在移动端上,复制粘贴是最为常见的操作之一。对我而言,将所需信息复制到剪贴板之后,除了用于分享和记录之外,还可能将其输入到某个 workflow 进行更复杂的处理——所以我有许多 workflow 开头就是 Get Clipboard。将这些 workflow 放到通知中心中,我可以十分方便地使用它们,但久之便拥挤不堪。所以我开始考虑将它们整合到一起的方法,整合的结果就是本文要介绍的智能剪贴板按钮——它让我可以在复制某几类信息之后直接按下按钮,而不用费事去找与之对应的workflow,Workflow 的通知中心插件也变得精简了许多。
原理其实很简单,就是利用 Workflow 中的 Actions 来识别 Clipboard 中的特定内容,根据不同内容执行不同的后续 Actions 或者其他 Workflow(Workflow 1.7.1:终于能在一个 Workflow 里运行另一个 Workflow 了)

内容识别我用到了以下两组 Actions
例如分析剪贴板内容来触发「保存 Twitter 图文到 Bear」这个 Workflow,关于这个 Workflow,可详见我的文章:Workflow + Pythonista 抓取 Twitter 图文内容。
做法就是在 Clipboard 这个主 Workflow 下设置一个 If Contains 来判断剪贴板内容是否包含「twitter」字符串。

举一反三,你可以判断 Clipboard 里的链接是来自知乎(包含zhihu)、P站(包含pixiv),还是来自国际版微博(包含oversea)呢。如果需要同时判断这三个,目前我只能像俄罗斯套娃那样 If Contains 套 If Contains 了——希望未来 Workflow 能引入 Switch/Case 这样的 Action !
正则表达式是比较高级的字符串处理手段,但上面提到的 If Contains 似乎不支持正则表达式。其实,Workflow 里有几个 Action 是支持正则表达式的,Match Text 这个 Action 就是其中之一。
所谓正则表达式就是利用事先定义好的符号来表示一类字符(比如所有字母、所有数字),从而建立匹配规范来提取、检索符合该规范的字符串。

比如,利用^[0-9a-fA-F]{40}$这行正则表达式,就可以匹配 Input 中可能存在的磁力链哈希码(Hash)。

在 Workflow 中我是这样使用的:

以上介绍的 If Contains 和 Match Text 两套方案,可以帮助你完成大部分剪贴板内容分析。
我已经把许多剪贴板相关的 Workflow 整合成为一个单个的 Clipboard 按钮——每次复制内容之后,只需要无脑按下通知中心插件中的 Workflow 按钮,之后就让它自行识别内容,然后运行不同的 Workflow 吧。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。