thepoy 发表于 2021-2-11 18:33

【up2b - 2022.01.08 更新】有人用Typora吗?写了一个自动上传图片的包

本帖最后由 thepoy 于 2022-1-8 14:12 编辑

> 命令行管理太麻烦?试试(https://github.com/thep0y/up2b-gui)吧!

# up2b

一个能够自动将 `Typora`中的图片上传到图床的包。

支持linux、macOS和windows。

!(https://cdn.jsdelivr.net/gh/thep0y/image-bed/md/1613401533109.png)

# 特点

支持以下图床自动上传:

- sm.ms
- imgtu.com(原域名imgchr.com)
- gitee.com
- github.com

成功上传到`github`后会返回`jsdelivr`的CDN链接,加快在中国境内对图片的访问速度。

支持jpeg/jpg和png图片的自动压缩,但仅在测试阶段,可能有些小问题,如果你不想在使用此功能时出现错误或达不到预期则不建议使用。

# 怎么用

>**`Typora` 必须安装!**



安装`up2b`包:

```shell
pip install up2b
```

安装后,会多出一条`up2b`命令:

```
usage: test.py [-h] [-v] [-aac] [-aw]
               [-c {0: 'sm.ms', 1: 'imgtu.com', 2: 'gitee.com', 3: 'github.com'} | -l USERNAME PASSWORD | -lg ACCESS_TOKEN USERNAME REPO FOLDER | --config-text-watermark X Y OPACITY TEXT FONT_PATH SIZE | -p IMAGE_PATH | -ps IMAGE_PATH ]

A package that can upload pictures to the image bed in Typora.

optional arguments:
-h, --help            show this help message and exit
-v, --version         show program's version number and exit
-aac                  allow automatic image compression
-aw, --add-watermarkwhether to add text watermark to the images to be uploaded
-c {0: 'sm.ms', 1: 'imgtu.com', 2: 'gitee.com', 3: 'github.com'}, --choose-site {0: 'sm.ms', 1: 'imgtu.com', 2: 'gitee.com', 3: 'github.com'}
                        choose the image bed you want to use and exit
-l USERNAME PASSWORD, --login USERNAME PASSWORD
                        save the user authentication token after successful login. You must enter the username and password after `-l` or `--login`
-lg ACCESS_TOKEN USERNAME REPO FOLDER, --login-git ACCESS_TOKEN USERNAME REPO FOLDER
                        save the authentication information of the git website, such as gitee, github
--config-text-watermark X Y OPACITY TEXT FONT_PATH SIZE
                        configure the text watermark
-p IMAGE_PATH, --image-path IMAGE_PATH
                        upload only one picture
-ps IMAGE_PATH , --images-path IMAGE_PATH
                        upload multiple pictures, the maximum is 10 pictures, use spaces to separate each image path.
```

#### 1 选择图床

第一次使用时,必须先选择图床。

`up2b`的`-c`参数可选值为:

- 0
- sm.ms
- 1
- imgtu.com
- 2
- gitee.com
- 3
- github.com

```shell
# 如果你想选择sm.ms
up2b -c 0
```
#### 2 保存认证信息

**普通图床:**

git仓库本身并不算是图床,所以git仓库之外的图床都是普通图床。

使用普通图床时,用`-l`或`--login`进行认证信息的配置,如:

```shell
up2b -l username password
```
**git仓库:**

此包所指的git仓库包括`gitee`和`github`,分别针对中国和全球用户(包括中国)。

使用git仓库作为图床,需要用`-lg`或`--login-git`进行认证信息的配置。

认证信息需要四个参数:

- `ACCESS_TOKEN` 私密令牌
- `USERNAME` 用户名
- `REPO` 仓库名
- `FOLDER` 想要保存在仓库里的哪个文件夹中,会自动创建不存在的文件夹

比如,我想将图片保存在`image-bed`仓库里的`md`文件夹内,输入此命令:

```shell
up2b -lg access_token username image-bed md
```

#### 3 在 typora 内填写命令

然后才能将`up2b`命令填到`Typora`里,命令里有个参数`-aac`为可选参数,其作用为开启自动压缩功能,如果不加此参数,上传图片时不会自动压缩,超出图床限制大小就会报错。而添加此参数,则会自动将超限图片压缩到限制图片大小或以下,保证顺利上传。

但自动压缩功能当前没有经过严谨地测试,所以不能保证不出问题,有问题请将异常的截图发在电报群里。

开启自动压缩功能:

```shell
up2b -aac -ps
```

不开启自动压缩功能:

```shell
up2b -ps
```

你也可以添加文字水印:

```bash
up2b -aw -ps
```

但需先配置文字水印的相关信息:

```bash
up2b --config-text-watermark -50 -50 50 'test watermark' '/home/thepoy/.local/share/fonts/simkai.ttf' 48
```

下面这张图就是自动上传的:

![截屏2021-04-03 10.52.12](https://cdn.jsdelivr.net/gh/thep0y/image-bed/md/1620902616449.png)

macOS 系统中,因环境变量原因,typora无法调用user下的bin中的命令,需要使用`where up2b`查找`up2b`命令的具体位置,用绝对路径填写。如下图:

![截屏2021-04-03 11.00.22](https://cdn.jsdelivr.net/gh/thep0y/image-bed/md/1620902667868.png)

将 github 个人主页作为水印添加到图片中的效果:
!(https://cdn.jsdelivr.net/gh/thep0y/image-bed/md/1641573280046.jpg)

userid_scott 发表于 2021-3-16 12:35

thepoy 发表于 2021-3-16 13:44

本帖最后由 thepoy 于 2021-3-16 13:56 编辑

userid_scott 发表于 2021-3-16 12:35
大佬 帮我看一下呗百度不到 你文档好像不是很详细这个是编码问题吗 还是json问题啊 不懂唉
Tracebac ...
这个错误是因为图片上传失败后,gitee返回了一条错误信息,但这个错误信息是我之前没有遇到过的,所以没有进行处理。
根据gitee api文档https://gitee.com/api/v5/swagger#/postV5ReposOwnerRepoContentsPath,当创建一个文件发生错误时,返回的json消息应该是包含一个"message"字段的,而你遇到这个的错误,则没有这个字段,所以我猜测可能是gitee认证信息的问题,可能是私人令牌、用户名或仓库输入错误。
请手动检查%AppData%\Typora\conf\conf.timg.json文件内的信息是否有错误。



如果信息正确,可能是私人令牌的权限是不正常:

zkx790274363 发表于 2021-2-11 18:35

支持支持,谢谢楼主

璐璐诺 发表于 2021-2-11 18:37

这个不错~~~~~~收藏了

jy02427010 发表于 2021-2-11 18:43

看不懂,有没有详细说明

hj170520 发表于 2021-2-11 18:43

谢谢楼主,请问哪里可以看到源码呢?
也想学一下{:301_974:}

thepoy 发表于 2021-2-11 18:49

jy02427010 发表于 2021-2-11 18:43
看不懂,有没有详细说明

哪里看不懂,你可以问出来,也能帮助我完善使用文档。

thepoy 发表于 2021-2-11 18:50

hj170520 发表于 2021-2-11 18:43
谢谢楼主,请问哪里可以看到源码呢?
也想学一下

代码很简单的,我不是很想拿出来献丑。。。

qin158182 发表于 2021-2-11 18:53

不懂的意思是有一部分像我这样的人连第一步那个源码安装都不懂

LittleLuck 发表于 2021-2-11 18:57

这个方便

hj170520 发表于 2021-2-11 18:59

thepoy 发表于 2021-2-11 18:50
代码很简单的,我不是很想拿出来献丑。。。

没关系,重要的是学习嘛{:301_1003:}
页: [1] 2 3 4 5 6 7 8
查看完整版本: 【up2b - 2022.01.08 更新】有人用Typora吗?写了一个自动上传图片的包