利用Python实现Picgo图床工具


Posted in Python onNovember 23, 2021

一、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

1、安装

pip install pypicgo

2、配置

配置文件位于/$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

更多的配置说明参考文档

3、使用

帮助信息

pypicgo -h

上传文件

pypicgo -f picture1 picture2 ...

指定上传图床

pypicgo -n github -f picture1 picture2 ...

如果系统找不到pypicgo,请检查pythonScripts文件夹是否被加入Path环境变量

4、支持的图床

图床名 模块地址
gitee pypicgo.uploaders.gitee.uploader.GiteeUploader
七牛云 pypicgo.uploaders.github.uploader.QiNiuUploader
github pypicgo.uploaders.qiniu.uploader.GithubUploader
SM.MS pypicgo.uploaders.smms.uploader.SmmsUploader

5、支持的插件

插件名称 用途 windows linux mac
rename 上传前重命名图片 支持 支持 支持
notify 上传成功失败的系统通知 支持 支持 支持
typora typora编辑器支持 支持 支持 支持
compress 图片上传前压缩 支持 支持 支持
jsdelivr github CDN 加速 支持 支持 支持
clipboard 上传完成将远程地址复制到剪切板 支持 支持 支持

6、Uploader上传器

uploader是具体的上传插件,用户需要继承pypicgo.core.base.uploader.CommonUploader并实现upload方法,然后在配置文件中引用即可.

7、插件系统

PyPicgo支持的插件分为三种beforeafterfinal

插件类型 运行时间 基类类 示例插件 运行时入参
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中配置即可使用.

8、开发

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图床工具的文章就介绍到这了,更多相关Python实现Picgo图床工具内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python比较两个图片相似度的方法
Mar 13 Python
python下解压缩zip文件并删除文件的实例
Apr 24 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
python 移除字符串尾部的数字方法
Jul 17 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
wxPython实现整点报时
Nov 18 Python
Python3常用内置方法代码实例
Nov 18 Python
python/Matplotlib绘制复变函数图像教程
Nov 21 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 Python
python for循环赋值问题
Jun 03 Python
python turtle绘图命令及案例
python机器学习Github已达8.9Kstars模型解释器LIME
如何在python中实现ECDSA你知道吗
Python jiaba库的使用详解
Nov 23 #Python
python 中的jieba分词库
Nov 23 #Python
python周期任务调度工具Schedule使用详解
Nov 23 #Python
python百行代码实现汉服圈图片爬取
You might like
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
php DES加密算法实例分析
2019/09/18 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
js压缩利器
2007/02/20 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
python基于socket实现网络广播的方法
2015/04/29 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
Python自省及反射原理实例详解
2020/07/06 Python
Python实现扫码工具的示例代码
2020/10/09 Python
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
幼儿园家长评语
2014/02/10 职场文书
cf战队收人广告词
2014/03/14 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
收款委托书
2014/10/14 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS