利用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中列表生成式和生成器的区别
Aug 03 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
使用Python写一个量化股票提醒系统
Aug 22 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
对Python发送带header的http请求方法详解
Jan 02 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
Python中一般处理中文的几种方法
Mar 06 Python
python super函数使用方法详解
Feb 14 Python
基于python生成英文版词云图代码实例
May 16 Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 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 CURL获取cookies模拟登录的方法
2013/11/04 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php字符串分割函数用法实例
2015/03/17 PHP
详谈PHP编码转换问题
2015/07/28 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
Python中的Numpy矩阵操作
2018/08/12 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
自我鉴定模板
2013/10/29 职场文书
留学自荐信写作方法
2014/01/27 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
《雨点》教学反思
2014/02/12 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书