使用 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

相關文章
相關標籤/搜索