引言
写这篇文章是因为自己经常使用Typora来编写文档,像有时候需要去托管自己的图片,如果存本地,不移动还好,如果发生文档的移动,图片也必须跟着移动,存在者各种不方便,于是我就开始了图片的云存档方案,一开始我是在网站上面进行上传操作,之后渐渐觉得略微繁琐,于是就找到了Typora的图片上传服务设置页面,发现可以使用三个插件来辅助我们上传,于是我使用了大家耳熟能详的picgo来上传图片,我使用过UI版本和命令行版本,发现UI版本在后台占用一定的内存,对于我一个电脑后台运行10几款程序的人来说,电脑内容略微吃紧,接着我使用了命令行版本,发现并不支持Chevereto图床,也许是我没有找到合适的插件,之后我就放弃了现成的插件来提供上传服务,便接着使用网站访问的方式来上传文件,我心一想,程序员岂能忍受这种折磨?干!于是我就开始了自定义命令之路。
阅读前你需要准备的东西和注意的东西
1、这个自定义命令可能只适用于Chevereto图床,其他图床可能不能使用
2、你需要自建Chevereto图床才可以拿到API密钥,怎么拿秘钥怎么自建Chevereto自己搜索
3、你需要有Python的环境,推荐3.10和我保持一样
教程开始
1、你需要打开pycharm编辑器,自己新建一个项目,项目叫什么不重要,可以写代码就可以,在项目里面新建一个文件,名称叫什么不重要。
2、复制下面的Python代码【觉得难操作的可以在文后直接拿exe文件】:
import requests
import json
import argparse
def upload_image_and_get_link(key, url, file_path):
querystring = {"key": key, "format": "json"}
files = {'source': open(file_path, 'rb')} # 以二进制形式读取文件
try:
# 发送POST请求
response = requests.post(url, files=files, params=querystring)
# 关闭文件
files['source'].close()
# 解析响应
if response.status_code == 200:
response_data = json.loads(response.text)
if response_data.get("status_code") == 200:
# 提取图片的直链
image_link = response_data.get("image", {}).get("url")
return image_link
else:
# 返回错误信息
return "Error: " + response_data.get("status_txt", "Unknown Error")
else:
return f"Error: Request failed with status code {response.status_code}"
except Exception as e:
return "Error: " + str(e)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Upload images and get their links.")
parser.add_argument("key", help="API key for the request")
parser.add_argument("url", help="URL to which the request is sent")
parser.add_argument("file_paths", nargs='+', help="Paths to the image files to upload")
args = parser.parse_args()
for file_path in args.file_paths:
result = upload_image_and_get_link(args.key, args.url, file_path)
# 仅输出图片链接,或者错误信息
print(result)
代码写于2024年1月23日,可能会存在一些问题,有问题欢迎纠正
3、代码打包
安装 pyinstaller
:可以通过运行 pip install pyinstaller
在您的环境中安装它,最好在你的pycharm里面的终端安装
之后cd
到你的文件下面运行:pyinstaller --onefile 代码文件的名称.py
之后就会在dist文件夹里面
生成你的exe文件
4、开始使用
你生成完成exe文件之后,你需要注意,双击文件是无法打开的,你需要使用命令行来运行它
之后会显示这样的提示词,只要显示这个命令就代表程序是完整的
现在你需要按照[path_to_your_exe] [your_api_key] [your_api_url] ${filepath}
这样的规则把组装好的文本放到Typora的自定义命令里面
如果不清楚的话这里有一个参考模板:"C:\Users\admin\Desktop\01.exe" 8fc05xxxx密钥xxxxx01f27 https://你的网站/api/1/upload/ ${filepath}
需要注意的是${filepath}不需要你提供值,Typora会自己赋值到这里
把你组装的文本放入Typora里面,就像这样:
之后我们点击验证就可以看到程序的请求结果,如果显示成功会返回一个直链。
在实际的试用中,你只需要配合截图工具,粘贴到这里就可以完成自动的上传操作,但是前提你需要打开这个开关:
在偏好设置里面你需要选择为:【上传图片】,即可
之后就完美了
资料获取
1、代码已经在前面显示了,就不过多赘述
2、觉得打包麻烦的可以直接下载,之后按照步骤操作就可以,注意:打包后的exe微软最新的安全中心会报毒,毕竟是自己写的一个小程序,没有加一些壳什么的,报毒也很正常,在安全中心选信用软件即可,不放心的可以自己拿代码自己造。
3、下载文件: