python构建的一个简单而强大的图片上传工具
项目描述
PyPicGo是各种图床工具,是PicGo的Python版实现,并支持插件七牛自定义插件,目前PyPicGo自带了gitee、github、SM.MS和云图传,还有rename、notify和typora等插件,并支持从pypi中下载其他插件和上传器
安装
pip install pypicgo
配置
配置文件位于/$HOME/.PyPicGo/config.yml下,采用YAML的方式进行配置。必须配置上传目录上传器,插件插件的数量可选
default: # 默认配置
uploader: gitee # 默认图床
plugins: # 全局插件
- module: pypicgo.plugins.rename.ReNamePlugin # 图床插件加载地址
config:
format: liunx{hash}chenghaiwen{date}-{filename}
- module: pypicgo.plugins.typora.TyporaPlugin
- module: pypicgo.plugins.compress.CompressPlugin
- module: pypicgo.plugins.notify.NotifyPlugin
uploaders: # 可用图床
smms: # sm.ms图床配置
module: pypicgo.uploaders.smms.uploader.SmmsUploader
config:
secret_token: xxx
gitee: # gitee 图床配置
module: pypicgo.uploaders.gitee.uploader.GiteeUploader
config:
domain: https://gitee.com
owner: xxx
repo: xxx
img_path: xxx
access_token: xxx
plugins:
github: # github图床配置
module: pypicgo.uploaders.github.uploader.GithubUploader
config:
domain: https://api.github.com
owner: xxx
repo: xxx
img_path: xxx
oauth_token: xxx
plugins: # github 图床私有插件
- module: pypicgo.plugins.jsdelivr.JsDelivrPlugin
qiniu: #七牛云图床配置
moduele: pypicgo.uploaders.qiniu.uploader.QiNiuUploader
config:
domain: http://demo.pypicho.com/
bucket_name: pypicgo
apis:
- http://up-z1.qiniup.com
access_key: xxx
secret_key: xxxx
更多的配置说明参考文档
使用
帮助信息
pypicgo -h
上传文件
pypicgo -f picture1 picture2 ...
指定上传图床
pypicgo -n github -f picture1 picture2 ...
如果系统找不到pypicgo,请检查python的Scripts文件夹是否被加入Path环境变量
支持的图床
图床名 |
模块地址 |
---|---|
吉提 |
pypicgo.uploaders.gitee.uploader.GiteeUploader |
七牛云 |
pypicgo.uploaders.github.uploader.QiNiuUploader |
github |
pypicgo.uploaders.qiniu.uploader.GithubUploader |
SM.MS |
pypicgo.uploaders.smms.uploader.SmmsUploader |
支持的插件
名称插件 |
用途 |
视窗 |
linux |
苹果电脑 |
---|---|---|---|---|
改名 |
上传前重命名图片 |
支持 |
支持 |
支持 |
通知 |
上传成功失败的系统通知 |
支持 |
支持 |
支持 |
泰普拉 |
Typora 编辑器支持 |
支持 |
支持 |
支持 |
压缩 |
图片上传前压缩 |
支持 |
支持 |
支持 |
jsdelivr |
github CDN 加速 |
支持 |
支持 |
支持 |
剪贴板 |
上传完成将远程地址复制到剪切板 |
支持 |
支持 |
支持 |
水印 |
图片加水印 |
支持 |
支持 |
支持 |
上传者上传器
uploader 是具体的上传插件,用户需要继承pypicgo.core.base.uploader.CommonUploader并实现上传方法,然后在配置文件中引用即可。
插件系统
PyPicgo支持的插件分为之前、之后和最终
插件类型 |
运行时间 |
基类 |
示例插件 |
运行时入参 |
---|---|---|---|---|
前 |
在图片上传前运行 |
``pypicgo.core. base.plugin.B 前插件`` |
改名 |
文件 |
后 |
在图片上传后运行 |
` pypicgo.core .base.plugin。插件后` |
通知 |
结果 |
最后 |
在所有图片上传后运行 |
p ypicgo.core.base.plugin.Fi nallyPlugin |
泰普拉 |
列表[结果] |
如果想自定义插件根据要求继承一个基类插件,只要执行方法,并在config.yml中实现配置即可使用。
开发
git clone git@github.com:AnsGoo/PyPicGo.git
cd pypicgo
pipenv shell
pipenv install
python run.py -n 图床名 -f img1.jpg img2.jpg
其他插件
名称插件 |
作用 |
---|---|
pypicgo-tinypng-插件 |
使用tinypng公开接口来压缩图片 |
pypicgo-blind-watermark-plugin |
给图片加盲水印 |