Afred算是mac必装的一个软件了,提供强大的索引功能,而且还支持安装各种插件,这里也可以自己开发插件,今天介绍一下自己动手开发一个雪花算法生成器

环境要求

  • mac系统
  • 已经安装了Afred软件
  • 系统安装了python环境

1、打开Afred的设计

image.png

2、在插件页面新建一个插件

image.png
选择Blanke Workflows,然后填写一些这个插件的信息
image.png

3、编写Script Filter

我们鼠标右键打开选项,然后在Inputs里面找到Script Filter,点击确定,新建一个处理单元
image.png

  • Triggers 是一些触发器
  • Inputs 就是我们输入单元
  • Actions 是一些操作,可以在Inputs后增加一些动作
  • Utilities 是自带的一些工具
  • Outputs 是我们有结果的情况可以输出到哪里

image.png
下面是我设置好的,由于我们这个脚本不需要输入参数,所以就设置为No Agrument了,然后在Script里面就写了一个运行pyhton文件的命令,我们的主要代码都写在python脚本里面
image.png

如果是需要传参的可以参考这个进行设置(这是在网上下载好的一个人民币转大写的插件,贴发票的时候用,heiheihei):
image.png

4、编写Python脚本

python怎么编写我就不介绍了,网上有很多教程可以参考

4.1、脚本准备

雪花算法生成的的脚本我也不进行相关介绍了,源来自其他人的分享雪花算法参考代码
现在我们已经有了脚本,下面就看怎么植入到我们的插件里面了

4.2、脚本引入、环境配置

我这里使用pycharm进行开发,首先我们直接把上面的脚本copy到编辑器里
脚本的名称我们就创建成和上面Script里面写的一样的名称snowflake_generator.py

然后我们需要引入workflow的插件进行支持,插件地址,这里有两种引入方式:

  1. 直接使用pip install 进行安装
# from your workflow directory
pip install --target=. Alfred-Workflow
  1. 直接将源码下载下来
    image.png
    下载解压后,我们只需要workflow这个文件夹的内容
    image.png
    然后将文件夹copy到python脚本的文件中,如果是pip install的方式,默认就会下载到当前文件夹下
    image.png

4.3、脚本编辑


### 引入workflow的脚本
from workflow import Workflow3


### 在原脚本中增加一个函数
def generate_feedback_results(result):
    wf = Workflow3()
    kwargs = {
        'title': result,
        'subtitle': '',
        "valid": True,
        'arg': result
    }
    wf.add_item(**kwargs)
    wf.send_feedback()


if __name__ == "__main__":
    worker = IdWorker(1, 1, 0)
    ### 将snowid生成的id传递到新写的函数里面即可
    sys.exit(generate_feedback_results(worker.get_id()))

这样我们的脚本就改造完成了

5、将脚本放入插件中

回到Afred插件中,我们右键然后选择在Finder中打开,就找到当前插件的目录文件了
image.png

然后我们需要将我们的脚本和刚才下载好的workflow文件一起copy到这个文件夹中即可
image.png

6、进行插件调试

先打开debug模式
image.png
然后我们就在搜索框中键入我们前面录入的Keyword
image.png
如果这里可以正常输出结果,就证明我们的脚本已经成功了,如果失败了可以看下具体的日志情况,看看是不是python环境有问题,还是脚本放错了位置,或者python脚本本身编写有问题
image.png

7、增加Outputs到剪贴板

image.png
image.png

这样我们的一个简单脚本就开发好了,非常的实用,如果后面哪个地方需要一个唯一id的话,直接打一个snow就可以了
image.png

参考链接: