利用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操作CouchDB的方法
Oct 08 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
Django中Middleware中的函数详解
Jul 18 Python
Django实现分页显示效果
Oct 31 Python
python函数不定长参数使用方法解析
Dec 14 Python
python实现微信打飞机游戏
Mar 24 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
Python headers请求头如何实现快速添加
Nov 03 Python
Pytest之测试命名规则的使用
Apr 16 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
实用函数10
2007/11/08 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
js 省地市级联选择
2010/02/07 Javascript
js常用代码段收集
2011/10/28 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python多线程扫描端口(线程池)
2019/09/04 Python
单位刻章介绍信范文
2014/01/11 职场文书
清明节演讲稿
2014/05/27 职场文书
小马王观后感
2015/06/11 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
室外天线与收音机天线杆接合方法
2022/04/05 无线电
golang使用map实现去除重复数组
2022/04/14 Golang