Alfred workflow 自定义开发
Alfred 翻译workflow开发
目的: alfred 作为工作的一个无敌提效工具 ,有很多现成的workflow供大家使用,但是总有无人涉及的地方,或者有某些自定义比较强的需求。此处通过0-1开发一个中(英)译英(中)的需求,带大家走进alfred 的workflow开发
需求重述:开发一个alfred workflow ,通过命令
f 测试
来执行百度翻译开放接口,输出结果test
并复制到系统剪切板(英译中同理)
1.申请个人翻译账号
笔者用的是百度翻译,申请了一个个人账号,其他平台均可,能调api服务就可以
官方地址: https://fanyi-api.baidu.com/product/11
完成注册和认证之后 ,可以在开发者信息中看到个人的APP ID和密钥,后面会用到
接入文档:https://fanyi-api.baidu.com/product/113
2.workflow开发
接口准备就绪,可以去创建 Alfred 的workflow 了
创建空workflow,并填写好名称描述等信息
保存后,在空白处右键-inputs-Script Filter 选择创建一个空白Filter
配置环境变量 APP_ID、KEY,在代码中可直接获取到注入的环境变量,位置编辑配置→Environment Variables→ add
1 |
|
将结果输出到剪切板,因为Alfred 需要输出特殊的格式数据,才能显示到工具上
具体Alfred 输出格式可参考: https://www.alfredapp.com/help/workflows/inputs/script-filter/json/
不同的language有不同的输出方式,此处演示的是bash场景输出
1 |
|
完整代码可参考如下:
1 |
|
处理curl 接口返回值时,因为返回的是json数据, 所以需要借助三方工具来处理 ,本身bash 并不具备json的处理能力。可以安装jq,安装方法如下:
1 |
|
可以输出结果之后,还有最后一步要做,就是回车将结果粘贴到剪切板。
Alfred本身有这个能力,只需右键Outputs→Copy to Clipboard ,新建一个对象,并在页面上讲脚本对象和输出对象通过线进行关联,如下图所示:
到此保存,workflow完成~
上面演示的是中译英,英译中同理,只需修改一下curl 参数即可
一起来体验一下吧
中译英
英译中
tips: 开发过程中,可以在Alfred 开启调试
感谢阅读,勘误、纠错或其他请联系progerchai@gmail.com,或者点击这里提 issue 给我
欢迎交流 👏,你的每一次指导都可以让我进步
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!