Skip to content

zhuzhouyue123/lskyup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LskyUp

PyPI - Python VersionPyPI - LicenseGitHub commit activityPyPIGitHub repo sizeGitHub top languageAuthor: JoeZhu (shields.io)Thanks (shields.io)for (shields.io)visiting (shields.io)my (shields.io)repository (shields.io)A Star ? (shields.io)

介绍

一个使用Python实现命令行上传图片到LskyPro图床,以及命令行查看LskyPro用户储存情况的小工具

目录

背景

最近在自己的服务器上搭建了一个LskyPro图床,想配合Typora+Picgo一起实现博客图片解决方案,但是Picgo现有的插件在我的自建服务上均会报错,所以抽空用Python写了这个命令行程序

原理

使用Python的Click库来创建命令行CLI工具

使用Python的requests库来发送GET和POST请求实现上传和参数的返回

使用Python的os、json库来实现路径的获取、拼接和文件的读取写入

图片压缩的算法参考了这个项目Luban-Py

安装

使用pip包管理工具安装

pip install lskyup

使用

完整命令帮助列表

❯ lskyup --help
Usage: lskyup [OPTIONS] COMMAND [ARGS]...

Options:
  -i, --info     Show the current token & server information
  -v, --version  Show the version information
  -u, --user     Show the User information
  --help         Show this message and exit.

Commands:
  clean   Clean Img Cache
  config  Config your server url and api token
  upload  Upload the images

lskyup config

配置Server和Token

❯ lskyup config
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Please enter your Lsky server's url: https://example.com/api/v1
Please enter your own Lsky token: Bearer x|xxxxxxxxxxxxxxxxxxxxxxxxxxx

配置文件位于用户根目录/lskyup/config.json

获取token

curl -X POST \
-d "[email protected]&password=yourpassword" \
-H "Accept: application/json" \
https://example.com/api/v1/tokens

返回值是json格式的,token位于data.token,格式是x|xxxxxxxxxxxxxxxxxxxxxx

token在输入之前请自行加上Bearer(注意中间有一个空格)

lskyup --version

输出当前工具版本等信息

 ▄█          ▄████████    ▄█   ▄█▄ ▄██   ▄   ███    █▄     ▄███████▄
███         ███    ███   ███ ▄███▀ ███   ██▄ ███    ███   ███    ███
███         ███    █▀    ███▐██▀   ███▄▄▄███ ███    ███   ███    ███
███         ███         ▄█████▀    ▀▀▀▀▀▀███ ███    ███   ███    ███
███       ▀███████████ ▀▀█████▄    ▄██   ███ ███    ███ ▀█████████▀
███                ███   ███▐██▄   ███   ███ ███    ███   ███
███▌    ▄    ▄█    ███   ███ ▀███▄ ███   ███ ███    ███   ███
█████▄▄██  ▄████████▀    ███   ▀█▀  ▀█████▀  ████████▀   ▄████▀
▀                        ▀


           Version 0.1.2 © JoeZhu ALL RIGHTS RESERVED
                       LICENSE  GPL-V3
             CONTACT : [email protected]

lskyup --info

输出当前的配置信息

❯ lskyup --info
Server: https://example.com/api/v1
Token: Bearer x|xxxxxxxxxxxxxxxxxxxxxxxxxxx

lskyup --user

输出当前配置用户的信息

❯ lskyup --user
USER INFORMATION
User name: Username
E-mail: [email protected]
Website: https://example.com
Image Numbers: 30
Album Numbers: 0
Storage Used/Total: 55122.47 KB/51200000 KB

lskyup upload

lskyup upload --help

upload子命令帮助列表

❯ lskyup upload --help
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Usage: lskyup upload [OPTIONS] [IMG]...

  Upload the images

Options:
  -c, --compress  Compress your Images before uploading
  --help          Show this message and exit.

不压缩上传

lskyup upload /img1 /img2 /img3

不压缩上传图片,返回图片访问url,支持多张图片(路径之间一个空格)

❯ lskyup upload /img1 /img2 /img3 
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Uploader is Processing:
Upload uncompressed Img
  [####################################]  100%
Upload Success:
https://example.com/i/2023/05/01/644fsdf6eb1bf.webp
https://example.com/i/2023/05/01/3f4fb1d6eb10d.jpg
https://example.com/i/2023/05/01/a6f4fb12hb15f.png

压缩后上传

lskyup upload -c /img1 /img2 /img3

压缩后上传图片(增加参数--compress

返回图片访问url,同样支持多张图片(路径之间一个空格)

压缩后的图像缓存在用户根目录/lskyup/Img_cache

❯ lskyup upload -c /img1 /img2 /img3 
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Uploader is Processing:
Upload compressed Img
  [####################################]  100%
Upload Success:
https://example.com/i/2023/05/01/644fsdf6eb1bf.webp
https://example.com/i/2023/05/01/3f4fb1d6eb10d.jpg
https://example.com/i/2023/05/01/a6f4fb12hb15f.png

lskyup clean

清理压缩图片缓存(删除用户根目录/lskyup/Img_cache文件夹)

❯ lskyup clean
lskyup Copyright (C) 2023-now Joe Zhu
LICENSE GPL-V3
Clean Img_cache successfully

Change Log


v0.1.5(2023.5.7 11:19 GMT +8)

  • 增加了config命令的反馈
  • 修复了细小的问题

v0.1.4 (2023.5.1 23:01 GMT +8)

  • 修复了一些细小的问题

v0.1.3 (2023.5.1 22:33 GMT +8)

  • 更新了README.md
  • 修复了一些细小的问题

v0.1.2 (2023.5.1 21:38 GMT +8)

  • 第一个可以用的版本

LICENSE

GPLv3+ © Zhouyue Zhu

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages