如何编写 Alfred 使用的alfred workflow 下载,需要掌握哪些知识

等了那么久,Alfred用户手册第二篇也终于出来了!上一篇中详细介绍了Alfred的基本查询功能和一些收费功能。第一次写这么长的教程收到了不少读者好评也给了很多意见。有细心的读者还给我提交了Alfred的Bug,为了给读者一个答复我用非常蹩脚的英语给Alfred官网提交了Bug很快便得到了回复,具体Bug信息可以参见的评论。
本篇将着重介绍Alfred杀手级功能WorkFlows。个人认为这个功能才是Alfred的核心功能,有了这个其它那些免费功能只能打打酱油了。说的那么厉害那么WorkFlows到底能做什么的呢?在Alfred官网是这么介绍的:
From quick file filters to advanced scripts, you can control your Mac, other applications, web services and more.
我们可以通过高级脚本语言来快速过滤文件、控制Mac、应用程序、web services甚至更多。有的人就想了这些貌似免费版也能做啊?注意是&高级脚本语言&免费版只是事先定制好的一些功能,而WorkFlows则是可以通过用户自己写脚本语言来定制搜索和其它一些高级功能。查了下WorkFlows支持bash、zsh、php、ruby、python、perl、osascript这些脚本语言。看到这些估计很多程序猿们已经开始蠢蠢欲动了吧。
支持脚本语言还只是WorkFlows的一部特性,难道不懂代码的小白们就用不了了吗?非也非也。我们再来看看WorkFlows的实现机制吧,在官网上还有这么一段介绍:
Put simply, workflows allow you to connect triggers and keywords to actions and outputs. Once they’re connected together, you’re up and running!
从这段话中我们可以看到实现WorkFlows的四个基本对象:trigger、keyword、action、output。Alfred通过将这四个基本对象合理connect便能实现各种高级功能。就好像乐高玩具,我们可以通过各种零件组合在一起组装成各种有趣的形状。可以夸张的说WorkFlows没有什么做不到只有你想不到的。下面是我画的一张思维导图,下面我便通过这张图由浅入深一一介绍WorkFlows的方方面面。
1. Examples
Alfred安装完后内置了7个例子。我们先不逐一介绍WorkFlows的四个基本对象,那样太理论化了。对于小白用户我们可以通过研究学习这几个例子来了解WorkFlows的使用方法,并从例子里逐步了解这四个基本对象。
1.1. Should I watch this movie
我们通过点击“+”号,选择“Examples”-“Should I watch this movie”就添加成功了,其它的例子添加方法一样。我们双击名字可以打开WorkFlows的一些属性设置,这个界面每个WorkFlows都是一样的。
其中可以看到有以下这些属性:&Workflow Name名字&Description功能描述&Category类型,有未分类的、工具类、互联网类、生产率类的&icon将图片拖进框内,为WorkFlows设置图标&Bundle
id为WorkFlows取一个唯一的可辨识的ID&Created by作者&Website主页&Readme如果还有其它的内容需要填写我们可以都填写在这里
从功能描述中我们可以知道,这个WorkFlow的功能是通过关键字“movie”加上电影名字然后系统会打开浏览器并分别从Youtube查询电影预告、从IMDB查询电影详细信息、从Rotten Tomatoes查询电影评分。除了基本设计外,我们下面来详细介绍这个WorkFlow的“组装”界面:
从上图中我们可以看到这个WorkFlow由2个基本对象组成:1个Input和3个Action。其中使用了Input的Keyword控件(姑且这么叫吧),和Action的Default
Web Search和Open URL控件,并且Input和Action之间用3条线连接了起来。联系前面说到的功能描述是不是觉得这个“组装台”界面很形象啊!我们再点开每个“零件”看看里面的设置又是怎样的。
点击Keyword控件,我们可以看到如上界面,主要可设置关键字、是否需要参数、查询标题、查询说明。
点击其中一个Default Web Search&控件,我们可以看到如上界面,主要可以设置搜索的网站和打开的浏览器。这里的搜索网站都是Alfred预设的,可当我们从中找不到我要搜索的网站怎么版那么就要用到下面一个控件了。
Open URL&控件就可以自定义查询网站,打开该控件我们可以设置URL。URL由网站的搜索URL+{query}关键字组成。如果不知道搜索URL是多少,我们可以先使用一次网站的搜索功能然后就能在浏览器的地址栏上找到该网站的搜索地址了。还能设置将查询内容编码成UTF8格式、将查询内的空格变成+号。
讲到这里聪明的读者一定会想以上3个网站在天朝都被墙了,这个WorkFlow没法用啊,不如把豆瓣等国内的电影网站搜索功能给加上去呢。那么我们就动动手一起把豆瓣电影搜索给加上去吧。很简单我们只要再加入一个Action就可以了,不过在Default
Web Search控件的列表里找不到豆瓣,那么我们只能用Open URL了。点击“+”号依次选择“Action”-“Open URL”,然后“组装台”上就多了一个控件了,我们将Keyword控件和新加入的Open
URL控件先连接起来,然后再双击该控件,然后在URL中输入“/subject_search?search_text={query}”其它设置默认即可。至于这个搜索连接是怎么获得的呢?其实很简单我们只要使用网站的搜索功能后就能在浏览器的地址栏上就能看到搜索连接了。
设置完后我们来试用一下,在Alfred搜索界面中输入“movie star wars”后浏览器会同时打开4个网站,而第四个网站就是我们新建的豆瓣电影的搜索结果了。是不是突然觉得建一个WorkFlow其实很简单呢?
1.2. Google Suggest
这个WorkFlow的功能是让我们在使用Google查询功能时能够使用只有在网页端查询才有的Google Suggest功能。就是在每次输入查询内容时系统会列出一些候选的查询关键字供用户选择。当然由于我们伟大的qiang存在无法正常使用该功能,所以大家就看看我的截图吧。 当然这个不是我要说的重点,其实这个WorkFlow是整个使用手册里最难入门的一个了,因为它里面用到了Script
Filter控件。这个控件是需要我们编写代码才能实现相关功能的,一旦掌握了这个技巧,那么Alfred基本就无所不能了。不过如果是代码小白可以直接跳过这一章了,当然你想折腾下那就接下去看吧。前面我也说过了Alfred支持许多脚本语言,由于本人对Python比较熟悉所以整篇文章就以Python为主了。 首先我们先来分析下这个例子(这个例子里使用的脚本语言是PHP)
从上图中我们可以知道这个WorkFlow使用了一个Script Filter控件,并将查询的结果传递给Default
Web Search控件。然后我们双击Script Filter控件看看里面是怎么设置的。
Keyword关键字&Placeholder
TitleWorkFlow使用时的标题&Placeholder SubtextWorkFlow使用时的提示文字&Please
Wait SubtextWorkFlow在查询时提示的文字&Language使用的脚本语言&Escaping在脚本内需要过滤的一些特殊字符防止脚本执行时受干扰(这个有疑问?)&Script脚本
别的设置其实都比较简单,关键就在Script这块了,我们可以看到代码第一行有一句&require_once('workflows.php');&&这里是在执行脚本之前需要先倒入workflows.php这个文件,这个文件是Alfred提供给我们封装了所有我们要编写WorkFlow方法的库文件。这个文件放在哪里呢?我们点击Open
workflow folder就能看到了。
上图中这个是PHP版本的库文件,当然其他的脚本语言也有对应的库文件,我们可以在里找到。 然后我们来简单介绍下这段代码主要做了什么吧 - 程序访问了Google
Suggest的API并将在Alfred输入框输入的查询内容传入API的传入参数内 - 然后开始逐一解析API返回回来的结果,这里返回结果格式是XML的 - 最后调用WorkFlow库内的方法将内容组织成Alfred的返回结果(result函数),主要内容有标题、标题下面的提示文字、图标、传出参数(供其他控件调用)
上面说了那么多大家肯定还是一头雾水,不如我们直动手来的直接。我们就做一个豆瓣图书查询的WorkFlow吧,先来看看我研究了几天的成果吧。
这个WorkFlow的功能是输入douban关键字后我们输入任意需要查询的图书名字,Alfred为我们列出与名字相匹配的图书结果。结果中我们可以了解到图书的书明、作者、出版社、价格、评分。并且选中某本书后系统会打开浏览器直接跳转到该书的详细页面。好,下面开始动手! 首先添加一个Blank WorkFlow,设置如下图
WorkFlow NameWorkFlow的名字&Description功能描述&Category类别&Bundle
idWorkFlow的一个唯一ID号,最好以你自己的域名+WorkFlow名字&Created By作者&Website作者的网站
设置好后,Alfred就会为WorkFlow创建一个文件夹并且生成一个名叫info.plist的文件,在使用WorkFlow库的时候会调用这个文件,所以一定要先做这一步。然后从GitHub上Python版的WorkFlow库,并解压到info.plist同一个目录下。然后再新件一个douban.py脚本文件。最后文件结构如下图
然后就开始写代码了,打开douban.py输入如下代码,具体代码可以访问我的。
上面代码中豆瓣图书查询API在豆瓣开发者页面内有相关的文档,每个接口的调用方法和返回结果都有一一说明的,这里就不展开了,大家可以去了解详细内容。另外上面写好的代码是可以直接在控制台或者在编辑器内调试运行的,在控制台内我们只要输入python
douban.py 查询内容&就可以看到执行结果了,本人使用的是Pycharm可以设断点调试比直接写在Alfred的Script内要方便多了。好了接下来就要告诉Alfred怎么调用我们写好的代码了。首先在我们的WorkFlow界面内增加一个Script
Filter控件,具体设置如下
其中要注意的就是因为我们的代码是直接写在脚本文件内的与之前例子写在Script内不同,所以我们这里要在Script内写python douban.py &{query}&&并且Language选择/bin/bash保存后我们就可以直接使用了。在Alfred搜索界面输入douban
图书名就能在列表中看到搜索结果了。如果只是看看简单的图书介绍那么到这里就结束了,不过如果我们想选中某本书并且打开浏览器看看图书的详细信息的话就要用到Action控件了。我们还是在WorkFlow界面上新增一个Open
URL的Action控件。然后在控件的配置界面里将URL设置成/subject/{query}&,在这里的{query}就是前面的Script
Filter控件代码中的arg=post['id']&这个值。 最后一步不但简单也很形象,我们要将刚才创建的两个控件链接起来,我们要将Script
Filter控件返回的参数传递给Open Url控件,Open
URL控件根据接受到的参数打开浏览器并打开相对应的链接。刚建完的两个控件是相互独立的,如下图
我们要做的就是将鼠标移动到Script Filter控件上,然后就能看到控件右边会有一块突出的部分,然后鼠标按住突出部分并移动到Open
URL控件边缘后放开鼠标就将两个控件连接起来了。最终效果如下图
通过以上这些我们基本已经从无到有创建了一个可用的WorkFlow了,其实这个WorkFlow我们还可以继续扩展,比如加入电影搜索,音乐搜索等其他更丰富的功能。而且我想通过以上的介绍大家应该也已经对Alfred的WorkFlow有更深入的了解了吧!最好的学习办法就是动手实践,我建议大家可以拿自己熟悉得脚本语言和熟悉的Web API来做一个WorkFlow。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28076次
排名:千里之外
原创:18篇
转载:153篇
(5)(21)(3)(4)(2)(2)(8)(3)(16)(5)(9)(23)(3)(1)(54)(12)及rF&&_ .&J0 露耋cLlm瓤Ll:1 sSO =SSI t6SC'2 LCC'4 、D018 L30E =《DAC五oLAl岳 LAl3 LA22Lj址4 、DlYD2 YDllYDl2 YDl3 YDl{ 、D15 ...D15 YDl了 YDlg 1订)19 YD二口 ...
全部来源:||
基于活动分析法的人类空间行为研究 Activity-based Approach to Human Spatial Behavior Research 北京大学城市与环境学院 北京大学城市与环境学院 柴彦威 柴彦威 沈洁 沈洁 张文...
全部来源:||||
Available online at www.sciencedirect.com Plant Science 174 (8 www.elsevier.com/locate/plantsci A novel betaine aldehyde dehydrogenase gene from Jatropha curcas...
com P h a rm aco lo gy, T o x ico lo gy, C lin ica l app r ica t io n 自汉唐以来, ... 白芥子甙经过芥子酶的作用, 水解生成硫代异氰酸 对羟苄酯 (P 2h yd ro xy2benzy l iso ...
全部来源:||||
导教师姓名:石永奎职称:教授山 东科技大学二 零一零年十二月山 东科技大学硕士学位... C E SA F F E C T E D A F F E C T E D A F F E C T E DA F F E C T E DB Y B Y B YB YD ...
全部来源:||
l Report was written by Colin Mathers and Jessica Ho with itover, Tessa Wardlaw, John Wilmoth and Danzhen You. Estimates and analysis are available at: http://www.who.int/gho/...
http://www.who.int/whr/2006/en/ [accessed 16 June 2012]. Jarvis L, Stanberry B. ... 2011. Lawn SD, Ayles H, Egwaga S, Williams B, Mukadi YD, Santos Filho ED, et al., et al. ...
中药草豆蔻、黄芩活性成分的光谱性质及荧光分析法研究 河北师范大学硕士学位论文 中药草豆蔻、黄芩活性成分的光谱性质及荧光分析法研究 姓名:孟晓彩 申请学位级别:硕士 ...
全部来源:||
时性好的优点,将有很好的推广应用前景. 第l章引言 1.2无线监控系统在国内外发展现状... 根据《通信局(站)电源空调及环境集中监控管理系统》【YD/T】中的规 定,...
全部来源:|||
A L C R I T I C A LC R I T I C A LA N A L Y S I S A N A L S S U E SI S S U E SI N I N I NI NC H I N A C H I N A C H I N AC H I N AD A I L Y D A I L Y D A I L YD A I L YA N D A N D A N ...
全部来源:||
找到约183条结果自从上次发布之后,经常有朋友在公众号后台留言求推荐一些好用的Workflow。决定给大家推荐一些值得尝试的Workflow,凑满八个开推。1. 快递查询无需知道快递属于哪个公司,输入「kd」激活。Workflow会自动识别剪贴板中的快递单号,将包裹现在的路由抓回来即时展示。公众号回复「2kd」获取下载地址2. 股票查询可查询沪深股票行情。输入「kd」激活,回车跳入新浪财经个股页面。公众号回复「2gp」获取下载地址3. 知乎查询&知乎日报输入「zh」加关键词搜索话题、人物、问题;输入「zhdaily」即时展示知乎日报文章。公众号回复「2zh」获取下载地址4.
DSN切换这是一个好东西,输入「dns」加 114、Google、Alibaba、V2EX自动切换到对应提供的DNS服务,输入「dns」加 default恢复设置。公众号回复「2dns」获取下载地址5. 即时获取本地天气输入「tq」取本地百度天气即时显示。公众号回复「2tq」获取下载地址6.
即时获取PM2.5指数输入「pm2.5」加 地点,即时显示各区PM2.5指数。公众号回复「2pm」获取下载地址7. 真相 - 快速添加文字后的拼音真有朋友问,居然还真有。公众号回复「2zx」获取下载地址8. Reddit 如果你也是Reddit爱好者,这个一定要试试。公众号回复「2reddit」获取下载地址本次推荐到此为止,等凑满八个咱们下期再见。如果想自己折腾一下Workflow,请参看这篇文章 - 老规矩,继续每日一篇优秀设计原文的推送。资料,还是读一手的好。虽然我并不推荐毛玻璃效果的设计,但作为设计师还是有必要知道在Sketch中如何实现的。今日推荐:How to get that nice iOS blur using Sketch, the right right way.链接地址:公众号回复「read03」获取原文链接。Pinapps(Pinapps) 
 文章为作者独立观点,不代表微头条立场
的最新文章
新版知乎新增「知乎圆桌」栏目,在我心中,这才是知乎完全体。尝试着使用一天,你将会发现豌豆荚 Smart 锁屏真的帮你省掉了非常多的无意义操作。想要关心的,它会在锁屏界面上全告诉你。dayu 这家伙肯定又在酝酿什么新的计划,至于是什么我不知道,也许和他聊聊你会发现些秘密...「知识化」在改Fantastical 2上架以来一直维持39.99美元的价格,数码荔枝经过数月的沟通终于拿下这次对折(129人民币)的活动。Pinapps 读者还可再获一张优惠劵。Pinapps我推荐的不仅是apps,更是一种态度!热门文章最新文章Pinapps我推荐的不仅是apps,更是一种态度!

我要回帖

更多关于 alfred workflow 教程 的文章

 

随机推荐