Alfred 真是 Mac 平台的神器,可以很方便的执行一些任务,比如查询 IP,我用了 kodango 的 IP 查询 Workflow Lookup IP,可以很方便的查到当前的 IP,效果如下 但是我有另一个需求,我在路由器上部署了透明代理,某些时候不稳定要切换,切几次就忘了当前用的哪个,想查一下的时候,之前我的是打开 https://www.astrill.com/what-is-my-ip-address.php,因为我的透明代理方案是国内外分流,这个网站在国外,而且被墙,所以打得开就是代理没问题,还可以看一下当前的代理 IP,但是这样就比较麻烦,要打开浏览器并且打开网页,本着能少做一个动作绝不多做的原则(哪来的原则…),想起来 Alfred+Workflow 这个神器组合,还有自己早就忘的差不多的 Python 技能,仿照着 dangoakachan 的 Workflow,做了一个查询国外代理 IP 的 Workflow,效果如下 还是挺方便的。
Workflow 的制作方法,还是挺简单的,流程就是,查询数据-封装数据为指定格式-返回给 Alfred 就可以了,看 dangoakachan 的 Workflow 源码的时候,看到用了一个封装好的库,https://github.com/deanishe/alfred-workflow ,这个库就是把 Workflow 的制作进制了封装,发送请求,解析数据,封装数据,返回数据给 Alfred 一条龙服务,还是相当方便的。而且文档齐全,按照文档一步一步做,基本没有什么问题。
我主要参考了这个教程 http://www.deanishe.net/alfred-workflow/tutorial_1.html 简单描述一下我制作的过程如下
- 创建新的 Workflow 里面的必填项是 Workflow Name,其他诸如描述等可填可不填
- 安装 alfred-workflow
首先在 Finder 中找到 Workflow 的位置,右键 workflow, Show in Finder 就可以了
根据教程里的安装 alfred-workflow 有两种方法
首先从 Github 下载最新的包 https://github.com/deanishe/alfred-workflow/releases
方法一是把 zip 直接放到 Workflow 目录,并在 Python 脚本最上方加上
sys.path.insert(0, 'alfred-workflow-X.X.X.zip')
方法二是解压 zip,把解压出来的 workflow 文件夹放进 Workflow 目录 我选择了第二种,简单直接嘛 到这就安装好了 - 写代码 参照 http://www.deanishe.net/alfred-workflow/tutorial_1.html#id6 只需要改动 main 方法部分,把数据改成自己想要的就可以 我这里用了 http://ip-api.com/docs/api:json 的 API 由于 alfred-workflow 的封装,其实自己是不需要做什么工作的,最终修改出来的代码如下
|
|
main 方法中,首先拿到 data,由于已知这个 API 返回的是 json 格式的数据,所以直接调用了 alfred-workflow 的 json() 方法,处理成 json 类型数据,判断了请求是否成功,拿到自己想显示的字段,组装成一个 item 并加入到 workflow 实例中,最后 send_feedback 就可以了。
到这里就折腾完了,再来看一下效果 嗯,还不错嘛。
Workflow 源码见 https://github.com/ekkog/lookup-ip
嗯,没事动动手写些小玩意,还是挺不错的。:)
– EOF –