# PyPicGo **Repository Path**: Ranger313/pypicgo ## Basic Information - **Project Name**: PyPicGo - **Description**: PyPicGo 是一款图床工具,是PicGo的Python版实现,并支持各种插件自定义插件,目前PyPicGo自带了gitee、github、SM.MS和七牛云图传,和rename、notify和typora等插件,并支持从pypi中下载其他插件和Uploader - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 4 - **Created**: 2021-08-10 - **Last Updated**: 2023-12-12 ## Categories & Tags **Categories**: networklib **Tags**: Python, 图床, PyPicGo, PicGO ## README # PyPicGo PyPicGo 是一款图床工具,是[PicGo](https://github.com/PicGo/PicGo-Core)的Python版实现,并支持各种插件自定义插件,目前`PyPicGo`自带了`gitee`、`github`、`SM.MS`和`七牛云`图传,以及`rename`、`notify`和`typora`等插件,并支持从`pypi`中下载其他插件和Uploader ## 安装 ```shell pip install pypicgo ``` ## 配置 配置文件位于`/$HOME/.PyPicGo/config.yml`目录下,采用`YAML`的方式进行配置。必须配置上传器`uploader`,插件`plugins`的数量可选 ```yaml 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 ``` 更多的配置说明参考文档 ## 使用 - 帮助信息 ```shell pypicgo -h ``` - 上传文件 ```shell pypicgo -f picture1 picture2 ... ``` - 指定上传图床 ```shell pypicgo -n github -f picture1 picture2 ... ``` 如果系统找不到`pypicgo`,请检查`python`的`Scripts`文件夹是否被加入`Path`环境变量 ## 支持的图床 |图床名|模块地址| |---|--| | `gitee`|`pypicgo.uploaders.gitee.uploader.GiteeUploader`| | `七牛云`|`pypicgo.uploaders.github.uploader.QiNiuUploader`| | `github`|`pypicgo.uploaders.qiniu.uploader.GithubUploader`| | `SM.MS`|`pypicgo.uploaders.smms.uploader.SmmsUploader`| ## 支持的插件 |插件名称|用途|windows|linux|mac| |--|--|--|--|--| |rename|上传前重命名图片|支持|支持|支持| |notify|上传成功失败的系统通知|支持|支持|支持| |typora|typora编辑器支持|支持|支持|支持| |compress|图片上传前压缩|支持|支持|支持| |jsdelivr|github CDN 加速|支持|支持|支持| |clipboard|上传完成将远程地址复制到剪切板|支持|支持|支持| |watermark|图片加水印|支持|支持|支持| ## `Uploader`上传器 uploader是具体的上传插件,用户需要继承`pypicgo.core.base.uploader.CommonUploader`并实现`upload`方法,然后在配置文件中引用即可. ## 插件系统 PyPicgo支持的插件分为三种`before`、`after`和`final` |插件类型|运行时间|基类类|示例插件|运行时入参| |--|--|--|--|--| |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`中配置即可使用. ## 开发 ```shell git clone git@github.com:AnsGoo/PyPicGo.git cd pypicgo pipenv shell pipenv install python run.py -n 图床名 -f img1.jpg img2.jpg ``` ## 第三方插件 |插件名称|作用| |--|--| |[pypicgo-tinypng-plugin](https://github.com/AnsGoo/pypicgo-tinypng-plugin)|利用tinypng公开接口来压缩图片| |[pypicgo-blind-watermark-plugin](https://github.com/AnsGoo/pypicgo-blind-watermark-plugin)|给图片加盲水印|