利用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逐行读取文件内容的三种方法
Jan 20 Python
跟老齐学Python之集合(set)
Sep 24 Python
python分析apache访问日志脚本分享
Feb 26 Python
python看某个模块的版本方法
Oct 16 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
为什么说Python可以实现所有的算法
Oct 04 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
如何基于python操作json文件获取内容
Dec 24 Python
python实现删除列表中某个元素的3种方法
Jan 15 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
python解析json数据
Apr 29 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
杏林同学录(六)
2006/10/09 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
常用PHP封装分页工具类
2017/01/14 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
python实现从wind导入数据
2019/12/03 Python
python多进程重复加载的解决方式
2019/12/13 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
考试违纪检讨书
2014/02/02 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
什么是就业协议书
2014/04/17 职场文书
财务管理专业自荐书
2014/09/02 职场文书
给老师的感谢信
2015/01/20 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS