open_file#

[CN]

该 Script Filter 的功能是展示当前这个 handlers 文件夹下的所有 Python 文件供用户选择, 用户可以用上下选择文件, 也可以输入字符来过滤文件. 选中后按回车就会用默认应用打开对应的文件.

我们准备用 Alfred filters results 功能帮我们过滤文件, 所以我们无需在 main() 中接收参数,

免去了自己实现过滤文件的功能. 那么我们在实现 parse_query() 函数的时候直接返回空字典即可.

在 Alfred Workflow 的 Canvas 界面中 Script Filter 的设置如下:

  • Keyword: afwf-example-open-file, Argument Optional

  • Language: /bin/bash

  • Script: python main.py ‘open_file {query}’

  • Alfred filters results: checked

  • 连接一个 Utilities - Conditional 的控件, 条件是 {var:open_file} is equal to y.

  • 连接一个 Actions - Open File 的控件, File 的参数是 {var:open_file_path}.

class afwf_example.handlers.open_file.Handler(id)[source]#
main() ScriptFilter[source]#

[CN]

用来处理 Script Filter 的具体业务逻辑的主方法. 是一个抽象方法. 你需要 override 这个方法 并给予具体的实现.

该方法可以接收任何自定义的参数, 并必须返回一个 ScriptFilter 对象, 里面包含了Alfred 对话框里的 Drop Down Menu 中的 Item 对象.

在设计上, 这个方法应该着眼于核心业务逻辑, 并且可以被单元测试充分覆盖. 在单元测试中, 你可以调用这个方法传入各种可能得参数组合, 并返回一个 ScriptFilter, 然后检查里面的 items 是否符合预期.

parse_query(query: str)[source]#

[CN]

一个抽象方法. 用来解析 Script Filter 传入的 query 字符串. 返回的字典要和 main() 中的参数一一对应. 注意, 即使是空字符串, 返回的字典也必须包含所有的参数.

Parameters:

query – 你在 Alfred Workflow UI 中跟在 keyword 之后的 query 字符串.

Returns:

一个字典, 它和 main() 中的参数一一对应.