利用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中method的参数传递过程
Apr 02 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
python numpy格式化打印的实例
May 14 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
深入理解Python异常处理的哲学
Feb 01 Python
详解Python:面向对象编程
Apr 10 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
Python PIL库图片灰化处理
Apr 07 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
Python time库的时间时钟处理
May 02 Python
TensorFlow的自动求导原理分析
May 26 Python
使用Djongo模块在Django中使用MongoDB数据库
Jun 20 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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
json简单介绍
2008/06/10 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
Python描述器descriptor详解
2015/02/03 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
医药工作岗位求职信分享
2013/12/31 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
Python OpenCV实现图形检测示例详解
2022/04/08 Python
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers