利用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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
零基础写python爬虫之打包生成exe文件
Nov 06 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 Python
python中pyplot基础图标函数整理
Nov 10 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 Python
python中super()函数的理解与基本使用
Aug 30 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中{}大括号是什么意思
2013/12/01 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
php实现插入排序
2015/03/29 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
brook javascript框架介绍
2011/10/10 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
flask session组件的使用示例
2018/12/25 Python
int在python中的含义以及用法
2019/06/27 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
农民工工资承诺书范文
2014/03/31 职场文书
班级年度安全计划书
2014/05/01 职场文书
入党介绍人意见范文
2015/06/01 职场文书
《叶问2》观后感
2015/06/15 职场文书
《观潮》教学反思
2016/02/17 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
Python 中的 copy()和deepcopy()
2021/11/07 Python