Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ansgoo/pypicgo
PyPicGo 是参考PicGo开发的一款图床上传的图传工具,并支持各种插件自定义插件,目前PyPicGo自带了gitee和七牛云图传,和rename、notify和typora等插件,并支持从pypi中下载其他插件和Uploader。
https://github.com/ansgoo/pypicgo
picgo pypicgo python3
Last synced: 29 days ago
JSON representation
PyPicGo 是参考PicGo开发的一款图床上传的图传工具,并支持各种插件自定义插件,目前PyPicGo自带了gitee和七牛云图传,和rename、notify和typora等插件,并支持从pypi中下载其他插件和Uploader。
- Host: GitHub
- URL: https://github.com/ansgoo/pypicgo
- Owner: AnsGoo
- License: mit
- Created: 2021-08-11T13:36:26.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-01-20T14:42:23.000Z (almost 3 years ago)
- Last Synced: 2024-07-10T17:49:22.627Z (4 months ago)
- Topics: picgo, pypicgo, python3
- Language: Python
- Homepage:
- Size: 12.7 MB
- Stars: 7
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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.NotifyPluginuploaders: # 可用图床
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 [email protected]:AnsGoo/PyPicGo.gitcd 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)|给图片加盲水印|