首先新建一个空白的工作流,点击下方的 +
按钮,选择 Blank workflow
,在弹出的窗口中填写这个工作流的相关信息:
首先工作的流的第一步是我们需要读取用户输入的关键字,用于 Alfred 进行匹配。添加的方法为:右键 -> Inputs -> Keyword,然后在弹出的窗口中填写 keyword:
接下来我们需要运行生成 token 的脚本,右键 -> Action -> Run Script,在编辑窗口中写触发这个工作流之后需要执行的脚本代码:
虽然,Alfred 中运行脚本可以直接使用 python 脚本,但是版本是 python2 的,同时也不好进行管理。因此使用 bash 来执行我们的 python 脚本文件更加的适合。再之后我们需要将脚本的输入内容复制到剪切板,右键 -> Outputs -> Copy to clipboard :
现在我们的工作流就创建好了,它包含了三个步骤:
然后,我们再通过这个运行的顺序将这三个串接起来,效果如下:
套用这个模板我们可以完成很多事情,这里我给演示如何使用生成 otp token。
点击 Run Script 窗口中的下边这个按钮打开该工作流的工作目录:
并复制出系统的绝对路径地址,大概是长下面这个样子的:
/Users/pushyzheng/Library/Application Support/Alfred/Alfred.alfredpreferences/workflows/user.workflow.B5BBAAE4-DB0A-46EC-9B02-AD8E9BD3E185
因为我们需要用到第三方库 pyotp ,Alfred 需要我们隔离的独立的环境,所以通过 pip 安装第三方库时,我们需要指定安装路径:
$ pip3 install --target="/Users/pushyzheng/Library/Application Support/Alfred/Alfred.alfredpreferences/workflows/user.workflow.B5BBAAE4-DB0A-46EC-9B02-AD8E9BD3E185" pyotp
然后在该路径在新建 main.py
:
import pyotp
totp = pyotp.TOTP('your secret')
# 必须要指定 end = ‘’ 否则输出的字符串会多一个换行符
print(totp.now(), end='')
Alfred Workflow 提供了 debug 的功能,允许我们查看执行的流程和相关的日志,如下所示:
然后输入 gotp 即可: