Skip to content

Commit 9e0f7ec

Browse files
committed
chore: upgrade MiraiGo version
2 parents e09a33e + 517d323 commit 9e0f7ec

33 files changed

+777
-266
lines changed

.github/ISSUE_TEMPLATE/bug-report.yaml

+3-1
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,13 @@ body:
101101
label: 使用协议
102102
description: 选择使用的协议
103103
options:
104-
- 0 | iPad
104+
- 0 | Default
105105
- 1 | Android Phone
106106
- 2 | Android Watch
107107
- 3 | MacOS
108108
- 4 | 企点
109+
- 5 | iPad
110+
- 6 | aPad
109111
validations:
110112
required: true
111113

.github/workflows/build_docker_image.yml

+1
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,4 @@ jobs:
7777
labels: ${{ steps.meta.outputs.labels }}
7878
cache-from: type=gha
7979
cache-to: type=gha,mode=max
80+
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/ppc64le,linux/s390x

.github/workflows/release.yml

+5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,12 @@ jobs:
1313
- name: Checkout
1414
run: |
1515
git version
16+
<<<<<<< HEAD
1617
git clone https://github.com/CodeLaboratory/go-cqhttp.git /home/runner/work/go-cqhttp/go-cqhttp
18+
=======
19+
git clone "${{ github.event.repository.html_url }}" /home/runner/work/go-cqhttp/go-cqhttp
20+
git checkout "${{ github.ref }}"
21+
>>>>>>> 517d32395391103dafafb60572530e3f05f29bb3
1722

1823
- name: Set up Go
1924
uses: actions/setup-go@v3

Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ RUN chmod +x /docker-entrypoint.sh && \
2121
ffmpeg \
2222
coreutils \
2323
shadow \
24-
su-exec && \
24+
su-exec \
25+
tzdata && \
2526
rm -rf /var/cache/apk/* && \
2627
mkdir -p /app && \
2728
mkdir -p /data && \

cmd/gocq/login.go

-50
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,18 @@ package gocq
33
import (
44
"bufio"
55
"bytes"
6-
"encoding/hex"
76
"fmt"
87
"image"
98
"image/png"
10-
"net/http"
119
"os"
1210
"strings"
1311
"time"
1412

1513
"github.com/Mrs4s/MiraiGo/client"
1614
"github.com/Mrs4s/MiraiGo/utils"
17-
"github.com/Mrs4s/go-cqhttp/internal/base"
1815
"github.com/mattn/go-colorable"
1916
"github.com/pkg/errors"
2017
log "github.com/sirupsen/logrus"
21-
"github.com/tidwall/gjson"
2218
"gopkg.ilharper.com/x/isatty"
2319

2420
"github.com/Mrs4s/go-cqhttp/global"
@@ -264,49 +260,3 @@ func fetchCaptcha(id string) string {
264260
}
265261
return ""
266262
}
267-
268-
func energy(uin uint64, id string, appVersion string, salt []byte) ([]byte, error) {
269-
signServer := base.SignServer
270-
if !strings.HasSuffix(signServer, "/") {
271-
signServer += "/"
272-
}
273-
response, err := download.Request{
274-
Method: http.MethodGet,
275-
URL: signServer + "custom_energy" + fmt.Sprintf("?data=%v&salt=%v", id, hex.EncodeToString(salt)),
276-
}.Bytes()
277-
if err != nil {
278-
log.Warnf("获取T544 sign时出现错误: %v server: %v", err, signServer)
279-
return nil, err
280-
}
281-
data, err := hex.DecodeString(gjson.GetBytes(response, "data").String())
282-
if err != nil {
283-
log.Warnf("获取T544 sign时出现错误: %v", err)
284-
return nil, err
285-
}
286-
if len(data) == 0 {
287-
log.Warnf("获取T544 sign时出现错误: %v", "data is empty")
288-
return nil, errors.New("data is empty")
289-
}
290-
return data, nil
291-
}
292-
293-
func sign(seq uint64, uin string, cmd string, qua string, buff []byte) (sign []byte, extra []byte, token []byte, err error) {
294-
signServer := base.SignServer
295-
if !strings.HasSuffix(signServer, "/") {
296-
signServer += "/"
297-
}
298-
response, err := download.Request{
299-
Method: http.MethodPost,
300-
URL: signServer + "sign",
301-
Header: map[string]string{"Content-Type": "application/x-www-form-urlencoded"},
302-
Body: bytes.NewReader([]byte(fmt.Sprintf("uin=%v&qua=%s&cmd=%s&seq=%v&buffer=%v", uin, qua, cmd, seq, hex.EncodeToString(buff)))),
303-
}.Bytes()
304-
if err != nil {
305-
log.Warnf("获取sso sign时出现错误: %v server: %v", err, signServer)
306-
return nil, nil, nil, err
307-
}
308-
sign, _ = hex.DecodeString(gjson.GetBytes(response, "data.sign").String())
309-
extra, _ = hex.DecodeString(gjson.GetBytes(response, "data.extra").String())
310-
token, _ = hex.DecodeString(gjson.GetBytes(response, "data.token").String())
311-
return sign, extra, token, nil
312-
}

cmd/gocq/main.go

+19-5
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,27 @@ func LoginInteract() {
163163
log.Fatalf("加载设备信息失败: %v", err)
164164
}
165165
}
166-
167-
if base.SignServer != "-" && base.SignServer != "" {
168-
log.Infof("使用服务器 %s 进行数据包签名", base.SignServer)
166+
signServer, err := getAvaliableSignServer() // 获取可用签名服务器
167+
if err != nil {
168+
log.Warn(err)
169+
}
170+
if signServer != nil && len(signServer.URL) > 1 {
171+
log.Infof("使用签名服务器:%v", signServer.URL)
172+
go signStartRefreshToken(base.Account.RefreshInterval) // 定时刷新 token
169173
wrapper.DandelionEnergy = energy
170174
wrapper.FekitGetSign = sign
175+
if !base.IsBelow110 {
176+
if !base.Account.AutoRegister {
177+
log.Warn("自动注册实例已关闭,请配置 sign-server 端自动注册实例以保持正常签名")
178+
}
179+
if !base.Account.AutoRefreshToken {
180+
log.Info("自动刷新 token 已关闭,token 过期后获取签名时将不会立即尝试刷新获取新 token")
181+
}
182+
} else {
183+
log.Warn("签名服务器版本 <= 1.1.0 ,无法使用刷新 token 等操作,建议使用 1.1.6 版本及以上签名服务器")
184+
}
171185
} else {
172-
log.Warnf("警告: 未配置签名服务器, 这可能会导致登录 45 错误码或发送消息被风控")
186+
log.Warnf("警告: 未配置签名服务器或签名服务器不可用, 这可能会导致登录 45 错误码或发送消息被风控")
173187
}
174188

175189
if base.Account.Encrypt {
@@ -287,6 +301,7 @@ func LoginInteract() {
287301
cli.Uin = base.Account.Uin
288302
cli.PasswordMd5 = base.PasswordHash
289303
}
304+
download.SetTimeout(time.Duration(base.HTTPTimeout) * time.Second)
290305
if !base.FastStart {
291306
log.Infof("正在检查协议更新...")
292307
currentVersionName := device.Protocol.Version().SortVersionName
@@ -373,7 +388,6 @@ func LoginInteract() {
373388
})
374389
saveToken()
375390
cli.AllowSlider = true
376-
download.SetTimeout(time.Duration(base.HTTPTimeout) * time.Second) // 在登录完成后设置, 防止在堵塞协议更新
377391
log.Infof("登录成功 欢迎使用: %v", cli.Nickname)
378392
log.Info("开始加载好友列表...")
379393
global.Check(cli.ReloadFriendList(), true)

0 commit comments

Comments
 (0)