用Python實現一個Picgo圖床工具


PyPicGo

PyPicGo 是一款圖床工具,是PicGo是Python版實現,並支持各種插件自定義插件,目前PyPicGo自帶了giteegithubSM.MS七牛雲圖傳,以及renamenotifytypora等插件,並支持從pypi中下載其他插件和Uploader

源碼地址:

【gitee】https://gitee.com/Ranger313/pypicgo
【github】https://github.com/AnsGoo/PyPicGo

安裝

pip install pypicgo

配置

配置文件位於/$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

更多的配置說明參考文檔

使用

  • 幫助信息
pypicgo -h
  • 上傳文件
pypicgo -f picture1 picture2 ...
  • 指定上傳圖床
pypicgo -n github -f picture1 picture2 ...

如果系統找不到pypicgo,請檢查pythonScripts文件夾是否被加入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 上傳完成將遠程地址復制到剪切板 支持 支持 支持

Uploader上傳器

uploader是具體的上傳插件,用戶需要繼承pypicgo.core.base.uploader.CommonUploader並實現upload方法,然后在配置文件中引用即可.

插件系統

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中配置即可使用.

開發

git clone git@github.com:AnsGoo/PyPicGo.git

cd pypicgo

pipenv shell

pipenv install

python run.py -n 圖床名 -f img1.jpg img2.jpg

歡迎大家試用並提交插件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM