已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > Java

标题: [精]Typora自动上传图片 配置式多图床插件2.0

作者: @Ta

时间: 2020-11-27发布,2020-11-30修改

点击: 5599

首先感谢姜辰加精,刚测试了下程序oracle jdk8下可以用,但openjdk11在某些情况下报错,oraclejdk13没得问题,林子里大佬可以帮分析下,我觉得可能是我使用第三方工具包hutool的兼容性问题,所以这里建议使用oracle-jdk吧,如果是windows用户应该不用担心这个问题,基本都是用oracle jdk的。

更新了2.0版本,jar包下载:

https://gitee.com/cwayteam/TyporaUpload/releases/v2.0

说明也改版了,请参看项目中的新说明:

https://gitee.com/cwayteam/TyporaUpload

这次更新主要添加了数据库、图片压缩及gitee图床的支持。

以下旧简介不舍的删留着吧。

简介

简介就不多说了,之前也发了其他类似帖子,执行命令照旧,需配置jdk环境

java -jar 路径/upload.jar

直接看配置截图

image-20201128102248265

若是linux系统并且装了多版本jdk建议使用jdk的全路径命令,例如:

/home/cway/soft/jdk-13/bin/java -jar /home/cway/upload.jar

配置文件为放在jar文件路径下的config.txt文件。例如以下路过、牛图网例子:

{
	"current": "niupic",
	"bed": {
		"imgchr": [{
				"url": "https://imgchr.com/1",
				"header": {
					"Cookie": "填写你的路过图床cookie"
				},
				"getByReg": "PF.obj.config.auth_token = \"(.*?)\";",
				"alis": "token",
				"successFlag":"auth_token"
			},
			{
				"url": "https://imgchr.com/json",
				"type": "post",
				"header": {
					"Cookie": "$cookie"
				},
				"param": {
					"type": "file",
					"action": "upload",
					"timestamp":"$timestamp",
					"auth_token":"$token",
					"nsfw": "0"
				},
				"fileFiled": "source",
				"getByPath": "image.url",
				"successFlag":"\"status_code\":200,",
				"out":true
			},
		],
		"niupic":[{
				"url": "http://www.niupic.com/index/upload/process",
				"type": "post",
				"fileFiled": "image_field",
				"successFlag":"success",
				"getByPath":"data",
				"out":true,
                                "before":"https://"
		}]
	}
}

想法

这不是一个图床程序,说成是类似postman之类的请求调试工具更加贴切。current填写指定图床,bed里设置图床的相关请求信息,包括请求方式、请求头、请求参数、文件域等,以集合[]形式储存请求信息是想让请求可以根据顺序依次执行。添加新图床时无需改代码,只需配置请求即可。

例如第一个imgchr路过图床配置中有两个请求,第一个请求获取上传所需的auth_token并对返回结果起别名为token,第二个请求中使用该token上传图片。这是个一连贯的流程,你甚至可以配置N多个请求。

JSON配置说明

current:选定图床

bed:图床配置,可以配置无限个

请求参数配置

url:请求地址
type:请求方式 post/get(不填默认为get)
header:请求头信息
param:请求参数
fileFiled:文件域(就是表单中上传文件的name,例如下图中的image_field)

image-20201127175939134

响应结果处理参数

successFlag:成功字符串,即请求后返回的数据判断有没有这个字符串,有则成功,成功后才得以使用getByPath或getByReg进行截取字符串。
getByPath:获取响应数据中具体某值。若请求返回是json数据,则使用该配置,值填json值的路径,例如data.url
getByReg:获取响应数据中具体某值。若返回是文本或html数据则使用正则截取,正则写在小括号里,转义符号为\。
all:若对返回数据不处理全部使用,用 "all":true(值任意,是不是true无所谓)
alis:对返回数据进行别名,或者说是赋值,下个请求中可以用“$别名”调用
before:在返回值前加文字,例如上述niupic的请求返回的网址不带https://,可以使用这个加上
after:在返回值后加文字
out:使用 out:true 表示输出该请求返回值或获取的具体值到控制台(值任意,是不是true无所谓,只要包含out就输出)

别名使用

上一个请求使用alis进行了别名,例如 "alis":"phone",在第二个请求中用$符号进行调用,例如"phone":"$phone"

默认别名

设计了几个参数不用赋值就可使用的别名。

$cookie:当第一个请求的header中设置了Cookie,第二个请求中则可直接使用该别名,例如上述案例中路过图床配置

$timestamp:取13位数字时间戳

upload.jar(3.27 MB)

https://cway.top


[隐藏样式|查看源码]


『回复列表(7|隐藏机器人聊天)』

1.
(/@Ta/2020-11-28 14:37//)

2.
其实我很早就想像一些固定的请求无需每个请求都写成程序,那岂不造成内耗了,倒不如把请求参数全放配置里,随时拓展。 https://cway.top
(/@Ta/2020-11-27 19:24//)

3.
Nokia 7 plus
(/@Ta/2020-11-27 20:28//)

4. @hik,还是希望大佬用golang写一个
(/@Ta/2020-11-28 10:52//)

5. 🆙
(/@Ta/2020-11-28 10:58//)

6.

@罐子不会golang
https://cway.top

(/@Ta/2020-11-28 14:38//)

7. @hik,流泪
(/@Ta/2020-11-28 14:42//)

回复需要登录

9月27日 03:40 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1