不少人使用PicGo来管理typora中的图片,但是最近我发现一个问题PicGo更新后似乎会丢失图床的配置信息,还得重新配置。
于是乎我决定动手写一个python脚本来实现图片管理上传功能,思路也比较简单。
- python读取用户插入的图片复制到用户配置的目录下面
- python调用git命令实现图片上传
- 返回图片路径,返回图片路径结果格式参考说明文档
- 在typora中配置调用自定义脚本
代码如下:
'''
Descripttion:
version:
Author: siebe
Date: 2021-10-27 14:21:58
LastEditors: siebe
LastEditTime: 2021-10-27 14:21:58
'''
import sys,os,time,platform,hashlib
from shutil import copyfile
def run(root_path,base_url):
os.chdir(root_path)
print(os.getcwd())
time_str = time.localtime()
year = time.strftime("%Y", time_str)
month = time.strftime("%m", time_str)
path = root_path + '/' + year + '/' + month + '/'
#print(path)
if os.path.exists(path):
pass
else:
os.makedirs( path, mode=0o777)
time.sleep(0.1)
operating = platform.system()
img_list = []
for item in sys.argv[1:]:
file_path,full_name = os.path.split(item)
file_name,ext = os.path.splitext(full_name)
time_str = time.localtime()
day = time.strftime("%d_%H", time_str)
file_md5_name = day + "_" + hashlib.md5(file_name.encode(encoding='UTF-8')).hexdigest()[0:10] + ext
full_path = path + file_md5_name
img_list.append(file_md5_name)
#print(full_path)
copyfile(item, full_path.replace("/", "\\"))
pass
if operating == "Linux":
command = str("cp " + item + " " + full_path).replace("\\\\", "/")
#print(command)
elif operating == "Windows":
command = str("copy " + item + " " + full_path).replace("/", "\\")
print(command)
else:
command = str("copy " + item + " " + full_path).replace("/", "\\")
#print(command)
#os.popen(command)
#print(img_list)
for item in img_list:
cmd1 = "git add ./" + year + "/" + month + "/" + item
cmd2 = "git commit -m " + item
os.system(cmd1)
os.system(cmd2)
cmd3 = "git push"
os.system(cmd3)
print("Upload Success:")
for item in img_list:
print(base_url + year + "/" + month + "/" + item)
if __name__ == '__main__':
root_path = "E:/note/album"
base_url = "https://gitee.com/siebe/album/raw/master/"
run(root_path,base_url)
网友评论