Markdown 截图变图床贴图 Mac环境

来源:互联网 发布:如何防止成为备胎 知乎 编辑:程序博客网 时间:2024/06/05 00:18

参考1:http://www.jianshu.com/p/6fb3e2151f90
参考2:http://www.jianshu.com/p/7bd4e6ed99be

需要mac,idea,控制台命令,python,alfred,qiqiu帐号

我的第一篇笔记,记录下上周六做的一个小小实验
在mac下截图后,然后在简书的markdown上面,粘贴,可以直接变成url。
不过因为做笔记的时候,都是用的本地的MacDown工具,或者在线博客csdn的md都不知道这么好的东西。
为了粘贴一个图片,我还试过把图片先粘贴到 码云的wiki?,然后拿到图片url,再拷贝到MacDown,简直麻烦死了。
于是我到网上搜了下,就出现了参考1和参考2,中间也遇到点小问题。

首先呢我用idea来调试python的,不过因为要用qiniu的包,还有appkit的包,
所以要先安装python插件
qiniu的
https://developer.qiniu.com/kodo/sdk/1242/python
安装很简单,下载好了,然后在压缩包下面运行

appkit的

需要配置PyObjC

这里有点小插曲
更新完了以后,因为idea报错,我又下载下面的包 手动安装了一下,可能是没必要的

pyobjc-core
pyobjc-framework-Cocoa
pyobjc-framework-Quartz

NSPasteboard
看到本地有上面这个,就Ok了

上代码,先截个图,然后运行一下,红色下划线无视,实际运行没问题

这个代码我是参考了上面两方进行修改的
`

-- coding: utf-8 --
flake8: noqa

from qiniu import Auth, put_file, etag, urlsafe_base64_encode
from AppKit import NSPasteboard, NSPasteboardTypePNG, NSPasteboardTypeTIFF
import time
import os
import sys

需要填写你的 Access Key 和 Secret Key

access_key = ‘XXX’
secret_key = ‘XXX’

要上传的空间

bucket_name = ‘XXX’
mime_type = “image/jpeg”
params = {‘x:a’: ‘a’}
url = “XXX” ##### 填入你的域名地址

构建鉴权对象

q = Auth(access_key, secret_key)

获得mac剪切板里的截图

def get_paste_img_file():
pb = NSPasteboard.generalPasteboard()
data_type = pb.types()
##### if img file
print(data_type)
now = int(time.time() * 1000) ##### used for filename
if NSPasteboardTypePNG in data_type:
##### png
data = pb.dataForType_(NSPasteboardTypePNG)
filename = ‘%s.png’ % now
filepath = ‘/tmp/%s’ % filename
ret = data.writeToFile_atomically_(filepath, False)
if ret:
return filepath

把本地图片上传到千牛

def upload_qiniu(path):
dirname, filename = os.path.split(path)
key = ‘%s’ % filename
token = q.upload_token(bucket_name, key)
progress_handler = lambda progress, total: progress
ret, info = put_file(token, key, path, params, mime_type, progress_handler=progress_handler)
return ret != None and ret[‘key’] == key

if name == ‘main‘:
path = get_paste_img_file()
ret = upload_qiniu(path)
if ret:
name = os.path.split(path)[1]
markdown_url = “” % (url, name)
print(markdown_url)
os.system(“echo ‘%s’ | pbcopy” % markdown_url)
os.system(‘osascript -e \’tell application “System Events” to keystroke “v” using command down\”)

else: print("upload_failed")

`

上面的代码运行通过了以后,在alfred里面弄一个快捷键脚本来运行

我的qiniu空间

最后我发现 chrome貌似有些插件,不过用自己的空间应该安心一点吧