Python脚本实现Typora粘贴图片自动上传博客园
Python脚本实现Typora粘贴图片自动上传博客园
众所周知,Typora支持粘贴图片后各种自动处理的功能,最方便的就是自动上传后转为外链了,但是我找了好久,没有找到理想中的脚本或程序,Typora支持PicGo,但是我又不想为了上传图片专门下载一个程序,PicGo支持的各种平台也都不太合我心意,我在Windows平台下找到过一个C#程序,支持将图片自动上传到博客园,受其启发,重写了一个Python脚本,可以在各种平台使用.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
import xmlrpc.client as xmlrpclib
import magic
def main(argv):
itercars = iter(argv)
next(itercars)
for image in itercars:
print(upload(image))
def upload(filepath):
url = "https://rpc.cnblogs.com/metaweblog/{metaweblogurl}"
blogid = "blogid"
usr = "usr"
passwd = "passwd"
server = xmlrpclib.ServerProxy(url)
mwb = server.metaWeblog
buf = read_into_buffer(filepath)
image = open(filepath,"rb")
mime_type = magic.from_file(filepath, mime=True)
imgdata = dict(name=image.name, type=mime_type, bits=buf)
mediaObject = mwb.newMediaObject(blogid, usr, passwd, imgdata)
return mediaObject["url"]
def read_into_buffer(filename):
buf = bytearray(os.path.getsize(filename))
with open(filename, 'rb') as f:
f.readinto(buf)
f.close()
return buf
if __name__ == "__main__":
main(sys.argv)
然后在Typora中这样设置,图片粘贴后就能自动转为博客园的外链了.
命令:
python /home/{pyfilepath}/image_upload.py
上述url是博客园metaweblog的url,可以在博客园个人设置中找到,用户名密码blogid等同上.