兼谈制作 Workflow 的思路
(说明:微博客户端为墨客 Moke)
前阵子看到 Hum 发表在少数派 Power+ 的《把微博里的特殊内容融入文章收纳系统》,深受启发。我的微信、FB、IG 都加了不少现实生活中的朋友,只有微博是纯粹的信息来源及兴趣聚合地,所以里面的内容多数是我想好好看的。起初我把感兴趣的内容都点了收藏,但时局如此你也懂的,通常过一两天它们就不见了,徒留我捶胸顿足。
后来我学聪明了,秒拍视频先用 Workflow 下载到相册。但我相册存放了整理好的所有相片,突兀的视频让我不爽(强迫症无误)。于是我修改了 Workflow 让它自动传到 iCloud Drive 上。时间一久,iCloud Drive 上多了很多乱码为名的 MP4,我也忘记了当时下载他们的理由。
Hum 的文章里提到了自动重命名并保存微博图片到 iCloud Drive ,依样画葫芦,我也就实现了自动重命名并保存秒拍视频到 iCloud Drive,其实很简单,只要把 Se7en_YXS 大大的微博秒拍视频下载稍作修改就好了。
于是我遇到了第二个问题:保存图片和视频是两个不同的 Workflow,每次我都必须手动选择,不利于形成肌肉记忆。有没有办法整合成一个 Workflow,让它自动判断出是图片 or 视频,自动处理呢?
当然可以啦。
我们先看一下 Hum 这个 Moke Pics to iCloud 的思路。
这是一个比较简单的 Workflow,大体上是利用 Moke 的分享按钮,运行后获取返回的图片,重命名并上传。
最开始的 Get Variable 引起了我的注意。为了知道返回的 Workflow Input 结果是什么,我在下面加了一个 Quick Look,做了一些测试。
我选择的微博是一条有9张图片的微博,结果返回了11条数据,前9条是图片,第10条是微博文字内容,第11条是微博本身的 URL。
我又选择了一条有两张图片的微博,结果返回了4条数据,前2条是图片,第3条是微博文字内容,第4条是微博本身的 URL。
继续测试。选择一条包含秒拍视频的微博,结果返回了3条数据,第1条是视频截图,第2条是微博文字内容,第3条是微博本身的 URL。
此时规律已经摆在眼前。图片返回的数据为图片本体 + 文字说明 + 链接;视频返回的数据为视频截图 + 文字说明 + 链接。考虑到我只存多图的微博,解决方式也就出来了。
首先获取最后一条数据即 URL。获取全部数据,因为是列表,所以 Combine Text 合并,Replace Text 去掉 URL (Item from List 即刚刚获取到的 Last Item,替换为空),继续把合并后的数据还原成列表 Split Text。此时列表的最后一项已经不是 URL 了而是微博文字内容,设置为 Name 作为文件名称。
重新获取 Workflow Input,计算返回数据条目。如果返回数据为3条,那么只有两种可能:带有一张图片的微博,或者含有秒拍视频的微博。由于我在只有一张图片的时候不会运行这个 Workflow,那么默认此时为视频微博。
既然为视频微博,获取最后一条数据即 URL(因为我们重新获取了数据所以 URL 还在),匹配一下字符去掉无关部分,调用下载视频的 Workflow 完成下载,重命名。
如果返回数据不是3条,即为图片微博,那么直接获取图片,用 Name + 数字的形式 Repeat with Each 重命名。
最后上传到 iCloud Drive,完成。
Hum 之前写过一篇除了养成整理文件的好习惯,你还应该具备自动化处理的思维,阐述了标签的重要性。我基本上是按照他的做法,利用 Hazel 给视频图片自动打上「待处理」的 tag,统一处理。
至此,我的微博处理流程大致是这样的:
文字类摘抄:直接分享到 Bear,打上「摘抄」的 tag。
微博文章:做了一个特别简单的 Workflow,创建 PDF 并上传到 iCloud Drive,利用 Hazel 自动打上「待处理」tag 并移动到 Onedrive 「PDFs」文件夹(详见 Hum 那篇文章)。
(这里要说明一下,搞得这么麻烦是因为微博文章无法被稍后读软件 Instapaper 抓取。微博你搞什么连微信公号 Instapaper 都支持了好吗……)
微信等其他链接:分享到 Instapaper。
图片、视频:利用 Workflow 上传并打 tag,统一处理。
如何制作一个 Workflow
制作 Workflow 必不可少的条件是反复调试和耐心。老实讲我是一个没有什么耐心的人,调试过程中频繁地想摔手机,但对科技的热爱和新手机的不舍让我坚持了下来(喂)。
言归正传。到今天我已经做了好几个 Workflow,有很简单的在别人基础上修改的,也有自己原创的。Workflow 本质上只是把一串工作连接起来,既不神秘也不困难。即便是看上去很复杂的代码、API,深究下去,你会发现大多也是简单的请求、判断、筛选而已。
所以怎么做一个 Workflow 呢?无它,不断尝试,不要放弃,最终你会成功的。
这大概就是所谓的热爱了吧。
参考资料:
Hum:Moke Pics to iCloud
Se7en_YXS:微博秒拍视频下载
Hum:把微博里的特殊内容融入文章收纳系统(付费教程)
Hum:除了养成整理文件的好习惯,你还应该具备自动化处理的思维
最后再次感谢各位大大们。