alfred-workflow开发

知识准备

Workflow 支持 Triggers、Inputs、Actions、Utilities,Outputs 共 5 项主要功能

  • 输入包含 Triggers(触发器)和 Inputs(输入触发);
  • Triggers 中的流程可以触发 Inputs 的流程,反之则不行,同时它们都可以触发其它后续流程。
  • 输出即 Outputs,包含了通知,放大展示、复制到剪切板,写入文本、播放声音、触发其它流程等。
  • 中间 Actions 包含打开文件、在 finder 中展示文件、唤起 app、打开 web search、打开 URL、执行系统命令、执行 iTunes 命令、执行脚本、执行 AppleScript 脚本、在终端中执行命令等。
  • Utilities 包含了一些公共组件,如变量设置、json 配置、过滤、转换、替换、延时、debug 等。

需求

无论用哪个工具截图后,在剪贴板中都有这个图片的二进制信息,把这个二进制信息自动上传到各大图床平台上 包括但不限于:

  1. 阿里云oss
  2. 七牛云
  3. 腾讯云cos
  4. 坚果云
  5. 百度云

进阶:

  • 在finder中选中文件,也可把该文件上传到云上
  • 剪贴板中url图片 自动上传到云上

快捷键及使用

tc [oss/qn/ts] wntc [oss/qn/ts] wn [oss/qn/ts]

  • 默认不写参数 上传到所有能够上传的云上并返回优先级最高的那个云的地址
  • 可以填写指定图床的 缩写,只上传到该图床并只返回该图床url

开发

安装操纵macos 剪贴板所需包 sudo pip install PyObjC --user

腾讯云cos

  1. 安装官方sdk 下载cos-python-sdk-v5 到workflow目录下

  2. 登录腾讯云创建存储桶

  3. 在腾讯云控制台创建子账号,使该账号具有存储桶的读写权限

  4. 复制SecretI和SecretKey填写到workflow的变量中

阿里云oss

直接安装官方sdk pip install oss2


程序示意图


看到了一个软件https://toolinbox.net/iPic/ 可惜要收费


万能图床源码地址: https://github.com/juforg/wntc.alfredworkflow

参考

https://sspai.com/post/44624 https://github.com/tiann/markdown-img-upload https://blog.csdn.net/u014600626/article/details/53635192 https://blog.csdn.net/linjf520/article/details/52225007 https://www.cnblogs.com/tina-python/p/5508402.html

可能遇到的错误

  • 1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [2018-07-31 11:42:33][ERROR: action.script] Traceback (most recent call last):
    File "<string>", line 3, in <module>
    File "/Library/Python/2.7/site-packages/qcloud_cos/__init__.py", line 1, in <module>
    from .cos_client import CosS3Client
    File "/Library/Python/2.7/site-packages/qcloud_cos/cos_client.py", line 21, in <module>
    from .cos_threadpool import SimpleThreadPool
    File "/Library/Python/2.7/site-packages/qcloud_cos/cos_threadpool.py", line 5, in <module>
    from six.moves.queue import Queue
    ImportError: No module named queue

注意