Alfred - Workflow工作流

Alfred - Workflow

突然又想着折腾下工作流,上手写了个小的工作流,仓库在这里,实现效果见下:

网上看到介绍写工作流都寥寥几笔,实际上还是有不少坑,而且从官网找寻教程入口也不太好找。这里就整理下

准备

创建

  • preferences/workflow页面左下角+创建一个blank workflow.信息根据自己需要填写
  • 创建好后在右边画布页面,右键input/Script Filter创建一个空的Filter
  • 双击进入界面选择想要写的脚本语言

alfred可通过多种脚本来写

bash, zsh, PHP, Ruby, Python, Perl, Apple Script

开发

选择python为例:

  • 左侧列表选中开发的工作流,右键open in finder

  • 打开工作流的真实目录,在当前目录下命令行执行以下命令,安装官方提供的依赖

    # from your workflow directory
    pip install --target=. Alfred-Workflow

    依赖中包含了简单的请求处理及基本示例说明,需要引入这部分依赖时,可以自己创建一个脚本,写入依赖:

    import sys
    import urllib2
    import json
    from workflow import Workflow, ICON_WEB, web
  • 如何获取传入参数

    • 如使用了单文件形式,见我的仓库提供的实例:
    wf = Workflow()
    wf.args[0] //即可获取传入的参数
    • 如在内联文件形式,可通过以下形式(创建工作流是,自带):
    # query形式
    query="{query}"
    echo -n $query
    
    # arg形式
    query=$1
    echo -n $query
  • 余下的就可以参考官方文档和仓库上手啦

一些注意事项

  • 开发可以通过右侧面板的小蜘蛛打开控制台用于调试
  • 注意调试中如果打印了内容出来(如print),会导致写的工作流不能正常运行。如需运行测试,需要把打印记录注释掉
  • 官方提供的仓库已经写了一些常用依赖,作者也希望尽可能不引入其他依赖,如有依赖,需要直接打包进workflow开发源文件中,避免用户再去下载
  • 官方提示不支持python3,很明显也是为了照顾mac用户出装的python2.7.不想用户再去安装依赖
  • 如不安装官方的依赖,作为当前的filter,需要以打印的形式如print,console.log输出到控制台,由alfred接管传入下一个流

开发整体感觉:本身开发比较简单,但是考虑到上边几条注意事项,很容易导致初上手要碰点坑。

  • 不能太随意依赖包(自用不用考虑此条)
  • 文档不太好找
  • 打印记录导致运行失常并报错
  • 通过console.log形式打印出进行接管的形式太有点那个吧

Work收集站点

推荐工作流

文章

@2018-04-06 20:40