mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-05 19:43:49 +08:00
fix #issuecomment-817290057.
This commit is contained in:
parent
382d2ffda8
commit
92b29dee2e
2
go.mod
2
go.mod
@ -4,7 +4,7 @@ go 1.16
|
||||
|
||||
require (
|
||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210411090602-132dc119bf4c
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210411115056-c751f3a90e7b
|
||||
github.com/dustin/go-humanize v1.0.0
|
||||
github.com/gin-gonic/gin v1.6.3
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
|
4
go.sum
4
go.sum
@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
|
||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f h1:2dk3eOnYllh+wUOuDhOoC2vUVoJF/5z478ryJ+wzEII=
|
||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f/go.mod h1:4a58ifQTEe2uwwsaqbh3i2un5/CBPg+At/qHpt18Tmk=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210411090602-132dc119bf4c h1:5FjKcZV/LHRJl8N3CEdZv2UOqJEYwdk6WfcUamtctEY=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210411090602-132dc119bf4c/go.mod h1:NjiWhlvGxwv1ftOWIoiFa/OzklnAYI4YqNexFOKSZKw=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210411115056-c751f3a90e7b h1:Z3ubJIzMBrKZeD+8k7+pLjXt3qPBXaxAjHo5LZHh83M=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210411115056-c751f3a90e7b/go.mod h1:NjiWhlvGxwv1ftOWIoiFa/OzklnAYI4YqNexFOKSZKw=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
55
main.go
55
main.go
@ -324,34 +324,43 @@ func main() {
|
||||
cli.OnDisconnected(func(q *client.QQClient, e *client.ClientDisconnectedEvent) {
|
||||
reLoginLock.Lock()
|
||||
defer reLoginLock.Unlock()
|
||||
times = 1
|
||||
if cli.Online {
|
||||
return
|
||||
}
|
||||
log.Warnf("Bot已离线: %v", e.Message)
|
||||
if conf.Account.ReLogin.Disabled {
|
||||
os.Exit(1)
|
||||
}
|
||||
if times > conf.Account.ReLogin.MaxTimes && conf.Account.ReLogin.MaxTimes != 0 {
|
||||
log.Fatalf("Bot重连次数超过限制, 停止")
|
||||
}
|
||||
if conf.Account.ReLogin.Interval > 0 {
|
||||
log.Warnf("将在 %v 秒后尝试重连. 重连次数:%v/%v", conf.Account.ReLogin.Interval, times, conf.Account.ReLogin.MaxTimes)
|
||||
time.Sleep(time.Second * time.Duration(conf.Account.ReLogin.Interval))
|
||||
} else {
|
||||
for {
|
||||
if conf.Account.ReLogin.Disabled {
|
||||
os.Exit(1)
|
||||
}
|
||||
if times > conf.Account.ReLogin.MaxTimes && conf.Account.ReLogin.MaxTimes != 0 {
|
||||
log.Fatalf("Bot重连次数超过限制, 停止")
|
||||
}
|
||||
times++
|
||||
if conf.Account.ReLogin.Interval > 0 {
|
||||
log.Warnf("将在 %v 秒后尝试重连. 重连次数:%v/%v", conf.Account.ReLogin.Interval, times, conf.Account.ReLogin.MaxTimes)
|
||||
time.Sleep(time.Second * time.Duration(conf.Account.ReLogin.Interval))
|
||||
} else {
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
log.Warnf("尝试重连...")
|
||||
if err := cli.TokenLogin(global.AccountToken); err == nil {
|
||||
saveToken()
|
||||
return
|
||||
} else {
|
||||
log.Warnf("快速重连失败: %v", err)
|
||||
}
|
||||
if isQRCodeLogin {
|
||||
log.Fatalf("快速重连失败")
|
||||
}
|
||||
log.Warnf("快速重连失败, 尝试普通登录. 这可能是因为其他端强行T下线导致的.")
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
log.Warnf("尝试重连...")
|
||||
if err := cli.TokenLogin(global.AccountToken); err == nil {
|
||||
saveToken()
|
||||
return
|
||||
}
|
||||
if isQRCodeLogin {
|
||||
log.Fatalf("快速重连失败")
|
||||
}
|
||||
log.Warnf("快速重连失败, 尝试普通登录. 这可能是因为其他端强行T下线导致的.")
|
||||
time.Sleep(time.Second)
|
||||
if err := commonLogin(); err != nil {
|
||||
log.Fatalf("登录时发生致命错误: %v", err)
|
||||
if err := commonLogin(); err != nil {
|
||||
log.Errorf("登录时发生致命错误: %v", err)
|
||||
} else {
|
||||
saveToken()
|
||||
break
|
||||
}
|
||||
}
|
||||
})
|
||||
saveToken()
|
||||
|
Loading…
x
Reference in New Issue
Block a user