Afred插件开发-雪花算法生成器
Afred算是mac必装的一个软件了,提供强大的索引功能,而且还支持安装各种插件,这里也可以自己开发插件,今天介绍一下自己动手开发一个雪花算法生成器
环境要求
- mac系统
- 已经安装了Afred软件
- 系统安装了python环境
1、打开Afred的设计
2、在插件页面新建一个插件
选择Blanke Workflows,然后填写一些这个插件的信息
3、编写Script Filter
我们鼠标右键打开选项,然后在Inputs里面找到Script Filter,点击确定,新建一个处理单元
- Triggers 是一些触发器
- Inputs 就是我们输入单元
- Actions 是一些操作,可以在Inputs后增加一些动作
- Utilities 是自带的一些工具
- Outputs 是我们有结果的情况可以输出到哪里
下面是我设置好的,由于我们这个脚本不需要输入参数,所以就设置为No Agrument了,然后在Script里面就写了一个运行pyhton文件的命令,我们的主要代码都写在python脚本里面
如果是需要传参的可以参考这个进行设置(这是在网上下载好的一个人民币转大写的插件,贴发票的时候用,heiheihei):
4、编写Python脚本
python怎么编写我就不介绍了,网上有很多教程可以参考
4.1、脚本准备
雪花算法生成的的脚本我也不进行相关介绍了,源来自其他人的分享雪花算法参考代码
现在我们已经有了脚本,下面就看怎么植入到我们的插件里面了
4.2、脚本引入、环境配置
我这里使用pycharm进行开发,首先我们直接把上面的脚本copy到编辑器里
脚本的名称我们就创建成和上面Script里面写的一样的名称snowflake_generator.py
然后我们需要引入workflow的插件进行支持,插件地址,这里有两种引入方式:
- 直接使用pip install 进行安装
# from your workflow directory
pip install --target=. Alfred-Workflow
- 直接将源码下载下来
下载解压后,我们只需要workflow这个文件夹的内容
然后将文件夹copy到python脚本的文件中,如果是pip install的方式,默认就会下载到当前文件夹下
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中打开,就找到当前插件的目录文件了
然后我们需要将我们的脚本和刚才下载好的workflow文件一起copy到这个文件夹中即可
6、进行插件调试
先打开debug模式
然后我们就在搜索框中键入我们前面录入的Keyword
如果这里可以正常输出结果,就证明我们的脚本已经成功了,如果失败了可以看下具体的日志情况,看看是不是python环境有问题,还是脚本放错了位置,或者python脚本本身编写有问题
7、增加Outputs到剪贴板
这样我们的一个简单脚本就开发好了,非常的实用,如果后面哪个地方需要一个唯一id的话,直接打一个snow就可以了
参考链接:
- 参考1:官方开发教程
- 参考2:雪花算法python版
- 重磅:开源插件大全