open_url#

[CN]

该 Script Filter 的功能是展示一些预先定义好的网站的名字和 URL. 然后选中后按回车就会在浏览器 内打开对应网站.

这个 Script Filter 没有输入参数. 所以 main() 函数也没有参数. 那么我们在实现 parse_query() 函数的时候直接返回空字典即可.

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

  • Keyword: afwf-example-open-url, No Argument

  • Language: /bin/bash

  • Script: python main.py ‘open_url {query}’, 这里我们没有勾选 Alfred filters results. 因为我们不需要 Alfred 帮我们过滤结果.

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

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

class afwf_example.handlers.open_url.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() 中的参数一一对应.