Skip to main content

用于编写 Alfred 2/3/4 工作流程的全功能助手库

项目描述

用于编写Alfred 2、3 和 4工作流程的辅助库。

支持 macOS 10.7+ 和 Python 2.7(Alfred 3 仅限 10.9+/2.7)。

Alfred-Workflow 旨在消除编写工作流的繁重工作。

它为您提供了在几分钟内从 API、应用程序或库创建快速且功能强大的 Alfred 工作流的工具。

http://www.deanishe.net/alfred-workflow/

特征

  • 捕获并记录工作流错误,以便于开发和支持

  • 帮助开发/调试的“魔术”参数

  • 自动保存设置

  • 超简单的数据缓存

  • 带有变音符号折叠的模糊、类似 Alfred 的搜索/过滤

  • 钥匙串支持密码、API 密钥等的安全存储(和同步)。

  • 简单生成 Alfred 反馈(XML 输出)

  • 用于处理非 ASCII 文本的输入/输出解码

  • 以请求为模型的轻量级 Web API

  • 预配置的日志记录

  • 轻松地将目录添加到sys.path

  • 轻松启动后台任务(守护程序)以保持您的工作流程响应

  • 检查托管在 GitHub 上的新版本和更新工作流。

  • 通过通知中心发布通知。

Alfred 3-only 功能

  • 从代码设置工作流变量

  • 高级修饰符

  • 仅限 Alfred 3 的更新(不会破坏 Alfred 2 的安装)

  • 重新运行脚本过滤器

快速示例

这是在 Alfred 中显示最近Pinboard.in帖子的方法。

在 Alfred 的首选项中创建一个新的工作流程。添加一个带有语言/usr/bin/python的脚本过滤器,并将以下内容粘贴到Script 字段中(更改API_KEY):

import sys
from workflow import Workflow, ICON_WEB, web

API_KEY = 'your-pinboard-api-key'

def main(wf):
    url = 'https://api.pinboard.in/v1/posts/recent'
    params = dict(auth_token=API_KEY, count=20, format='json')
    r = web.get(url, params)
    r.raise_for_status()
    for post in r.json()['posts']:
        wf.add_item(post['description'], post['href'], arg=post['href'],
                    uid=post['hash'], valid=True, icon=ICON_WEB)
    wf.send_feedback()


if __name__ == u"__main__":
    wf = Workflow()
    sys.exit(wf.run(main))

使用{query}作为URL将Open URL操作添加到您的工作流程,将您的脚本过滤器连接到它,您现在可以在 Alfred 中的 Pinboard 项目上按ENTER以在浏览器中打开它。

安装

注意:如果您打算将您的工作流程分发给其他用户,您应该在您的工作流程目录中包含 Alfred-Workflow(以及您的工作流程需要的其他 Python 库),如下所述。不要 要求用户在他们的系统 Python 中安装任何东西。Python 安装不支持同一个库的多个版本,因此如果您依赖全局安装的库,您的工作流程很可能迟早会中断或被其他一些做同样顽皮事情的软件破坏。

带点

您可以通过以下方式将 Alfred-Workflow 直接安装到您的工作流程中:

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

您可以以相同的方式安装Cheese Shop上可用的任何其他库。有关更多信息,请参阅pip 文档

从源头

从GitHub 发布页面下载alfred-workflow-XXXzip文件 并将 ZIP 解压缩到工作流的根目录( info.plist所在的位置)。

或者,您可以从 GitHub 存储库下载源代码并将工作流子文件夹复制到工作流的根目录。

您的工作流目录应如下所示(其中 yourscript.py包含您的工作流代码,info.plist是 Alfred 生成的工作流信息文件):

Your Workflow/
    info.plist
    icon.png
    workflow/
        __init__.py
        background.py
        notify.py
        Notify.tgz
        update.py
        version
        web.py
        workflow.py
    yourscript.py
    etc.

文档

详细文档(包括教程)可在 http://www.deanishe.net/alfred-workflow/获得。

项目详情