使用 Alfred Workflow 制做日文单词翻译器

Alfred 是 Mac 下一款强悍的系统加强工具,能够快速启动+搜索本地和网络任意内容。购买其付费版本的 Power Pack 还能启用 Workflow 功能,使用一门经常使用的脚本开发语言就能编写本身的工做流来实现各类有趣的插件。(这里有国人收集的不少现成的 Workflow 插件下载)php

请输入图片描述

今天心血来潮花了17英镑购买了 license,搜刮了几个本身可能用到的脚本,顺便研究了下如何进行 Alfred 脚本编写。只需简单的 PHP 就能完成一个 workflow。html

这里以编写一个 Alfred 里的日文单词翻译器为例,简单介绍下流程。git

基本原理:获取用户在 Alfred 内输入的内容(日文单词) -> POST 到百度云提供的翻译 API 获取翻译结果 -> 解析结果 -> 调用 Alfred Workflow 的方法输出成 Alfred 格式。github

完成以后的效果是这样的:json

请输入图片描述

开发实现流程:

1、建立新的 Workflowsegmentfault

请输入图片描述

2、填写 Workflow 信息api

随便写写便可。微信

请输入图片描述

3、设置脚本参数网络

点击空白 Workflow 右上角的加号按钮,Inputs -> Script Filter,弹出以下窗口。app

请输入图片描述

  • Keyword:激活某个 Workflow 的关键词,输入以后加参数便可完成整套动做。勾选后面的“with space”并在下拉框选择“Argument Required”表明必须附带参数。(由于咱们是查日文单词,若是压根不给出单词那还玩个球)
  • Place Hoder Title:输入关键词后出现的标题,告知用户现已启用的 Workflow。
  • Place Holder Subtext:附带字符串,随便说点什么。
  • “Please wait” Subtext:执行命令时(例如从网络获取数据时)显示的文字。
  • Language:由于我用PHP,因此选 /user/bin/php。
  • Escaping 不需改动。
  • 图标:随便选一个图拖拽到“Drop an icon above.”区域。我顺便将这个 icon 保存到了工程目录下,命名为 icon.png(下文脚本须要)。

4、复制 PHP 库文件

点击 Save 按钮上方的 Open workflow folder,将进入当前 Workflow 的本地工程目录。切换到上层,再进入其下的其余目录下复制一个 workflow.php 回来。(解析 PHP 脚本所需的库文件,默认在工程目录下不会有,因此须要从现有的其余工程目录里拷一个,若是找不到能够直接从这里取)

5、Script 区域输入代码

由于比较简单,因此直接上代码(你也能够从这里获取):

require('workflows.php');

// Settings
define('TRANS_QUERY_URL','http://openapi.baidu.com/public/2.0/bmt/translate?client_id=Vn8ockFtPxNM655RP4iVWixU&from=auto&to=auto&q=');

// Main Phrase
$wf = new Workflows();
$query = "{query}";
$json = json_decode($wf->request(TRANS_QUERY_URL.$query));

// Fetch Result
foreach ($json->trans_result as $translation):
$result['src']  =   $translation->src;
$result['dst']  =   $translation->dst;
$wf->result(1, 'http://www.baidu.com',$result['dst'],$query,'icon.png','yes');
endforeach;

// Export Results
echo $wf->toxml();

6、设置动做

点击 Save 保存上述脚本。

返回编辑区,点击右上角加号,选择“Actions->Open URL”,在弹出窗口的 “URL:”里填入“{query}”,保存。将编辑区出现的两个模块拖动链接。

至此整个过程完毕。

如今,激活 Alfred(我设置为双击 Command 键),输入“jp [日文单词]”,就能调用百度翻译的 API 查看到单词释义了。

另外我还作了个游戏王卡牌查询的 Alfred 脚本,代码在此

请输入图片描述

总体说来,Alfred Workflow 的编写跟微信公众平台开发比较相似,要作的无非就是输入什么、如何处理及输出什么,没有特别复杂高深的东西,主要仍是看想象力。

原文地址:http://www.fanbing.net/alfred-workflow-programming-tutorial.html

相关文章
相关标签/搜索