From 4ad7da7a9a87272c9c336e64fabfa74605e69b59 Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Sat, 18 Mar 2023 10:27:48 +0800 Subject: [PATCH] feat: add sign-server flag --- cmd/gocq/login.go | 7 ++++++- internal/base/flag.go | 30 ++++++++++++++++-------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/cmd/gocq/login.go b/cmd/gocq/login.go index fb86154..4fb278c 100644 --- a/cmd/gocq/login.go +++ b/cmd/gocq/login.go @@ -15,6 +15,7 @@ import ( "github.com/Mrs4s/MiraiGo/client" "github.com/Mrs4s/MiraiGo/utils" "github.com/Mrs4s/MiraiGo/wrapper" + "github.com/Mrs4s/go-cqhttp/internal/base" "github.com/mattn/go-colorable" "github.com/pkg/errors" log "github.com/sirupsen/logrus" @@ -263,9 +264,13 @@ func fetchCaptcha(id string) string { func energy(uin uint64, id string, salt []byte) ([]byte, error) { // temporary solution + signServer := "https://captcha.go-cqhttp.org/sdk/dandelion/energy" + if base.SignServerOverwrite != "" { + signServer = base.SignServerOverwrite + } response, err := download.Request{ Method: http.MethodPost, - URL: "https://captcha.go-cqhttp.org/sdk/dandelion/energy", + URL: signServer, Header: map[string]string{"Content-Type": "application/x-www-form-urlencoded"}, Body: bytes.NewReader([]byte(fmt.Sprintf("uin=%v&id=%s&salt=%s", uin, id, hex.EncodeToString(salt)))), }.Bytes() diff --git a/internal/base/flag.go b/internal/base/flag.go index b9331f4..5e546b5 100644 --- a/internal/base/flag.go +++ b/internal/base/flag.go @@ -23,20 +23,21 @@ var ( // config file flags var ( - Debug bool // 是否开启 debug 模式 - RemoveReplyAt bool // 是否删除reply后的at - ExtraReplyData bool // 是否上报额外reply信息 - IgnoreInvalidCQCode bool // 是否忽略无效CQ码 - SplitURL bool // 是否分割URL - ForceFragmented bool // 是否启用强制分片 - SkipMimeScan bool // 是否跳过Mime扫描 - ConvertWebpImage bool // 是否转换Webp图片 - ReportSelfMessage bool // 是否上报自身消息 - UseSSOAddress bool // 是否使用服务器下发的新地址进行重连 - LogForceNew bool // 是否在每次启动时强制创建全新的文件储存日志 - LogColorful bool // 是否启用日志颜色 - FastStart bool // 是否为快速启动 - AllowTempSession bool // 是否允许发送临时会话信息 + Debug bool // 是否开启 debug 模式 + RemoveReplyAt bool // 是否删除reply后的at + ExtraReplyData bool // 是否上报额外reply信息 + IgnoreInvalidCQCode bool // 是否忽略无效CQ码 + SplitURL bool // 是否分割URL + ForceFragmented bool // 是否启用强制分片 + SkipMimeScan bool // 是否跳过Mime扫描 + ConvertWebpImage bool // 是否转换Webp图片 + ReportSelfMessage bool // 是否上报自身消息 + UseSSOAddress bool // 是否使用服务器下发的新地址进行重连 + LogForceNew bool // 是否在每次启动时强制创建全新的文件储存日志 + LogColorful bool // 是否启用日志颜色 + FastStart bool // 是否为快速启动 + AllowTempSession bool // 是否允许发送临时会话信息 + SignServerOverwrite string // 使用特定的服务器进行签名 PostFormat string // 上报格式 string or array Proxy string // 存储 proxy_rewrite,用于设置代理 @@ -60,6 +61,7 @@ func Parse() { flag.StringVar(&LittleWD, "w", "", "cover the working directory") d := flag.Bool("D", false, "debug mode") flag.BoolVar(&FastStart, "faststart", false, "skip waiting 5 seconds") + flag.StringVar(&SignServerOverwrite, "sign-server", "", "use special server to sign tlv") flag.Parse() if *d {