用Python实现一个Picgo图床工具
PyPicGo
PyPicGo 是一款图床工具,是PicGo是Python版实现,并支持各种插件自定义插件,目前PyPicGo自带了gitee、github、SM.MS和七牛云图传,以及rename、notify和typora等插件,并支持从pypi中下载其他插件和Uploader
源码地址:
【gitee】https://gitee.com/Ranger313/pypicgo
【github】https://github.com/AnsGoo/PyPicGo
安装
pip install pypicgo
配置
配置文件位于/$HOME/.PyPicGo/config.yml目录下,采用YAML的方式进行配置。必须配置上传器uploader,插件plugins的数量可选
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环境变量
支持的图床
| 图床名 | 模块地址 |
|---|---|
gitee |
pypicgo.uploaders.gitee.uploader.GiteeUploader |
七牛云 |
pypicgo.uploaders.github.uploader.QiNiuUploader |
github |
pypicgo.uploaders.qiniu.uploader.GithubUploader |
SM.MS |
pypicgo.uploaders.smms.uploader.SmmsUploader |
支持的插件
| 插件名称 | 用途 | windows | linux | mac |
|---|---|---|---|---|
| rename | 上传前重命名图片 | 支持 | 支持 | 支持 |
| notify | 上传成功失败的系统通知 | 支持 | 支持 | 支持 |
| typora | typora编辑器支持 | 支持 | 支持 | 支持 |
| compress | 图片上传前压缩 | 支持 | 支持 | 支持 |
| jsdelivr | github CDN 加速 | 支持 | 支持 | 支持 |
| clipboard | 上传完成将远程地址复制到剪切板 | 支持 | 支持 | 支持 |
Uploader上传器
uploader是具体的上传插件,用户需要继承pypicgo.core.base.uploader.CommonUploader并实现upload方法,然后在配置文件中引用即可.
插件系统
PyPicgo支持的插件分为三种before、after和final
| 插件类型 | 运行时间 | 基类类 | 示例插件 | 运行时入参 |
|---|---|---|---|---|
| before | 在图片上传前运行 | pypicgo.core.base.plugin.BeforePlugin |
rename | File |
| after | 在图片上传后运行 | pypicgo.core.base.plugin.AfterPlugin |
notify | Result |
| final | 在所有图片上传后运行 | pypicgo.core.base.plugin.FinallyPlugin |
typora | List[Result] |
如果想自定义插件只要根据要求继承任意一个基类插件,并实现execute方法,并在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
欢迎大家试用并提交插件
用Python实现一个Picgo图床工具的更多相关文章
- 一劳永逸,使用 PicGo + GitHub 搭建个人图床工具
原文链接: 一劳永逸,使用 PicGo + GitHub 搭建个人图床工具 经常写博客的同学都知道,有一个稳定又好用的图床是多么重要.我之前用过七牛云 + Mpic 和微博图床,但总感觉配置起来比较麻 ...
- 【原创】PicUploader: 一个还不错的图床工具
PicUploader PicUploader 是一个用php编写的图床工具,它能帮助你快速上传你的图片到云图床,并自动返回Markdown格式链接到剪贴板.配置完成后,要获取一个可用于markdow ...
- 图床工具PicGO实现七牛云图片上传
图床工具PicGO实现七牛云图片上传 我们在写博客或者网络文章时经常需要上传图片.目前最有名气的图床工具就是PicGO. 简单的界面,完整的功能,在相册里也能直接复制markdown图片链接.一直深受 ...
- PicGo图床与Typora(PicGo+Typora+GitHub的完整设置)
PicGo图床与Typora(PicGo+Typora+GitHub的完整设置) 如何更方便的用markdown写文章,接下来按照我的步骤来,你一定可以的,这个文章包含了GitHub图床配置.PicG ...
- PicGo 图床配置【工具篇】
Github图床(舍弃) step1 下载PicGo 下载链接: https://github.com/Molunerfinn/picgo/releases step2 新建仓库作为上传图片的目标地址 ...
- 发现一个微博图床API和图片上传代码
网上寻到一款微博图床的插件,然后顺藤摸瓜找到了原作者的API代码. API文件: <?php /** * 上传图片到微博图床 * @author Youngxj & mengkun &a ...
- 用Python做一个简单的翻译工具
编程本身是跟年龄无关的一件事,不论你现在是十四五岁,还是四五十岁,如果你热爱它,并且愿意持续投入其中,必定会有所收获. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过 ...
- 用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名
生活中有很多场景都需要我们签字(签名),如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了,俗话说字如其人嘛,本 ...
- 利用 Python 写一个颜值测试小工具
我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起.很多人学习p ...
随机推荐
- libevent实现多线程
libevent并不是线程安全的,但这不代表libevent不支持多线程模式.前几天在微博上看到ruanyf发了条微博说到apache和nginx的并发模型,看到评论很多人都说不对于是自己又查了下,总 ...
- libevent源码学习(5):TAILQ_QUEUE解析
目录 前言 结点定义 链表初始化 链表查询及遍历 链表查询 链表遍历 插入结点 头插法 尾插法 前插法 后插法 删除结点 替换结点 总结 前言 在libevent中使用到了TAILQ数据结构,看了一下 ...
- 10分钟uniapp实现即时通讯,腾讯云IM的正确打开方式get
官方的demo基本上覆盖了所有功能点 今天在使用uniapp开发即时通讯IM的时候遇到了瓶颈,便在uniapp的插件市场搜寻一波看看有没有成熟的轮子借鉴,终于发现了这个宝藏插件--"智密 - ...
- Centos 查询端口被占用命令
lsof -i:端口号 netstat -ntulp | grep 80 //查看所有80端口使用情况
- spoj-ORDERS - Ordering the Soldiers
ORDERS - Ordering the Soldiers As you are probably well aware, in Byteland it is always the military ...
- A1. 道路修建 Small(BNUOJ)
A1. 道路修建 Small Time Limit: 1000ms Memory Limit: 131072KB 64-bit integer IO format: %lld Java cl ...
- python学习第四天:python基础(字符编码和乱码到底咋回事儿)
字符编码 这得从字符编码开始说起: 字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题.因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理. 最早的计算机在设计时采 ...
- HDU 6470:Count(矩阵快速幂)
Count Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- Regularizing Deep Networks with Semantic Data Augmentation
目录 概 主要内容 代码 Wang Y., Huang G., Song S., Pan X., Xia Y. and Wu C. Regularizing Deep Networks with Se ...
- Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks
目录 概 主要内容 Auto-PGD Momentum Step Size 损失函数 AutoAttack Croce F. & Hein M. Reliable evaluation of ...