利用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调用cmd复制文件代码分享
Dec 27 Python
在Python中使用dict和set方法的教程
Apr 27 Python
Python3使用requests发闪存的方法
May 11 Python
python3 模拟登录v2ex实例讲解
Jul 13 Python
python机器人行走步数问题的解决
Jan 29 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
Python脚本调试工具安装过程
Jan 11 Python
看看如何用Python绘制小米新版天价logo
Apr 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
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
简单理解Vue中的nextTick方法
2018/01/30 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
python turtle 绘制太极图的实例
2019/12/18 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
详解Python中的路径问题
2020/09/02 Python
上海期货面试题
2014/01/31 面试题
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
领导干部贪图享乐整改措施
2014/09/21 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
教师个人成长总结
2015/02/11 职场文书
团委工作总结2015
2015/04/02 职场文书
光荣之路观后感
2015/06/12 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
python数字转对应中文的方法总结
2021/08/02 Python
Win11快速关闭所有广告推荐
2022/04/19 数码科技