利用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搭建虚拟环境的步骤详解
Sep 27 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python装饰器的执行过程实例分析
Jun 04 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
Python 日志logging模块用法简单示例
Oct 18 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
python异常处理try except过程解析
Feb 03 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
python实现超级马里奥
Mar 18 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 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之第三天
2006/10/09 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
Flask框架钩子函数功能与用法分析
2019/08/02 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
家具公司总经理岗位职责
2014/07/08 职场文书
老人节标语大全
2014/10/08 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
理想国读书笔记
2015/06/25 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android