利用Python实现Picgo图床工具

时间:2022-03-26 00:45:57

一、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的数量可选

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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、使用

帮助信息

?
1
pypicgo -h

上传文件

?
1
pypicgo -f picture1 picture2 ...

指定上传图床

?
1
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、开发

?
1
2
3
4
5
6
7
8
9
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图床工具内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/rangger/p/15559808.html