利用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实现批量重命名文件的代码
May 25 Python
python提取页面内url列表的方法
May 25 Python
Python算法之求n个节点不同二叉树个数
Oct 27 Python
python并发编程之线程实例解析
Dec 27 Python
django输出html内容的实例
May 27 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
Python的argparse库使用详解
Oct 09 Python
Python数学形态学实例分析
Sep 06 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
Python日志logging模块功能与用法详解
Apr 09 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
一劳永逸彻底解决pip install慢的办法
May 24 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
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
php生成xml简单实例代码
2009/12/16 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
实测jquery data()如何存值
2013/08/18 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
js实现3D旋转相册
2020/08/02 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
Python unittest单元测试框架总结
2018/09/08 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
应届生.NET方向面试题
2015/05/23 面试题
网络维护管理员的自我评价分享
2013/11/11 职场文书
日语专业个人的求职信
2013/12/03 职场文书
电子商务个人自荐信
2013/12/12 职场文书
仓库门卫岗位职责
2013/12/22 职场文书
群众路线对照检查材料
2014/09/22 职场文书
个人务虚会发言材料
2014/10/20 职场文书
Python如何配置环境变量详解
2021/05/18 Python
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android