Skip to content

Commit dd5c349

Browse files
committed
load sms from env
1 parent 9b8d3d4 commit dd5c349

File tree

4 files changed

+34
-5
lines changed

4 files changed

+34
-5
lines changed

go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,24 @@ module github.com/ProtobufBot/Go-Mirai-Client
33
go 1.15
44

55
require (
6-
github.com/Mrs4s/MiraiGo v0.0.0-20201212141451-52096c28df90
6+
github.com/Mrs4s/MiraiGo v0.0.0-20201219065512-b80b256a5ff9
77
github.com/fanliao/go-promise v0.0.0-20141029170127-1890db352a72
88
github.com/gin-gonic/gin v1.6.3
99
github.com/go-playground/validator/v10 v10.4.1 // indirect
1010
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e
1111
github.com/golang/protobuf v1.4.3
1212
github.com/gorilla/websocket v1.4.2
1313
github.com/json-iterator/go v1.1.10 // indirect
14+
github.com/leodido/go-urn v1.2.1 // indirect
1415
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
1516
github.com/modern-go/reflect2 v1.0.1 // indirect
1617
github.com/sirupsen/logrus v1.7.0
1718
github.com/smartystreets/goconvey v1.6.4 // indirect
1819
github.com/tidwall/gjson v1.6.4 // indirect
1920
github.com/tidwall/match v1.0.2 // indirect
2021
github.com/ugorji/go v1.2.1 // indirect
21-
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 // indirect
22-
golang.org/x/sys v0.0.0-20201211090839-8ad439b19e0f // indirect
22+
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 // indirect
23+
golang.org/x/sys v0.0.0-20201218084310-7d0127a74742 // indirect
2324
gopkg.in/yaml.v2 v2.4.0
2425
)
2526

go.sum

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ github.com/Mrs4s/MiraiGo v0.0.0-20201204063549-4d6459e1de6d h1:fD7QubAbdP1tu4jTT
2424
github.com/Mrs4s/MiraiGo v0.0.0-20201204063549-4d6459e1de6d/go.mod h1:J1zaJWyeX7hQIPpOobqb8opxTNPbguotudPPrHJMoDM=
2525
github.com/Mrs4s/MiraiGo v0.0.0-20201212141451-52096c28df90 h1:/qGcbSQGHqYFUPZVIWWKD/KUkofW4B7msBva5f8R2mY=
2626
github.com/Mrs4s/MiraiGo v0.0.0-20201212141451-52096c28df90/go.mod h1:o+me0DWqTbZU4Xmu2D1gIpCditlwt+vMTNZmjvApf5Y=
27+
github.com/Mrs4s/MiraiGo v0.0.0-20201219065512-b80b256a5ff9 h1:hTMR86VIWYwb9Ewwj/KCDn4pVDBNmetIME6lOMmXe4U=
28+
github.com/Mrs4s/MiraiGo v0.0.0-20201219065512-b80b256a5ff9/go.mod h1:o+me0DWqTbZU4Xmu2D1gIpCditlwt+vMTNZmjvApf5Y=
2729
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
2830
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
2931
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -83,6 +85,8 @@ github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7
8385
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
8486
github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
8587
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
88+
github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
89+
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
8690
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
8791
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
8892
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
@@ -110,6 +114,7 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
110114
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
111115
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
112116
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
117+
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
113118
github.com/tidwall/gjson v1.6.1 h1:LRbvNuNuvAiISWg6gxLEFuCe72UKy5hDqhxW/8183ws=
114119
github.com/tidwall/gjson v1.6.1/go.mod h1:BaHyNc5bjzYkPqgLq7mdVzeiRtULKULXLgZFKsxEHI0=
115120
github.com/tidwall/gjson v1.6.3 h1:aHoiiem0dr7GHkW001T1SMTJ7X5PvyekH5WX0whWGnI=
@@ -155,6 +160,8 @@ golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c h1:9HhBz5L/UjnK9XLtiZhYAd
155160
golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
156161
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9 h1:sYNJzB4J8toYPQTM6pAkcmBRgw9SnQKP9oXCHfgy604=
157162
golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
163+
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 h1:3wPMTskHO3+O6jqTEXyFcsnuxMQOqYSaHsDxcbUXpqA=
164+
golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
158165
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
159166
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
160167
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -193,6 +200,8 @@ golang.org/x/sys v0.0.0-20201202213521-69691e467435 h1:25AvDqqB9PrNqj1FLf2/70I4W
193200
golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
194201
golang.org/x/sys v0.0.0-20201211090839-8ad439b19e0f h1:QdHQnPce6K4XQewki9WNbG5KOROuDzqO3NaYjI1cXJ0=
195202
golang.org/x/sys v0.0.0-20201211090839-8ad439b19e0f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
203+
golang.org/x/sys v0.0.0-20201218084310-7d0127a74742 h1:+CBz4km/0KPU3RGTwARGh/noP3bEwtHcq+0YcBQM2JQ=
204+
golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
196205
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
197206
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
198207
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
@@ -231,5 +240,6 @@ gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
231240
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
232241
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
233242
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
243+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
234244
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
235245
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ func main() {
3030
port = strconv.Itoa(int(conf.Server.Port))
3131
}
3232
}
33+
if os.Getenv("SMS") == "1" {
34+
bot.SmsFirst = true
35+
}
3336
envPort := os.Getenv("PORT")
3437
if envPort != "" {
3538
port = envPort

service/bot/captcha.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,20 @@ import (
1616

1717
var Captcha *dto.Captcha
1818
var CaptchaPromise *promise.Promise
19+
var SmsFirst = false
1920

2021
func ProcessLoginRsp(cli *client.QQClient, rsp *client.LoginResponse) (bool, error) {
2122
if rsp.Success {
2223
Captcha = nil
2324
return true, nil
2425
}
26+
if rsp.Error == client.SMSOrVerifyNeededError {
27+
if SmsFirst {
28+
rsp.Error = client.SMSNeededError
29+
} else {
30+
rsp.Error = client.UnsafeDeviceError
31+
}
32+
}
2533
switch rsp.Error {
2634
case client.SliderNeededError:
2735
if client.SystemDeviceInfo.Protocol == client.AndroidPhone {
@@ -52,7 +60,7 @@ func ProcessLoginRsp(cli *client.QQClient, rsp *client.LoginResponse) (bool, err
5260
return false, fmt.Errorf("提交图形验证码错误")
5361
}
5462
return ProcessLoginRsp(cli, rsp)
55-
case client.SMSNeededError, client.SMSOrVerifyNeededError:
63+
case client.SMSNeededError:
5664
if !cli.RequestSMS() {
5765
return false, fmt.Errorf("请求短信验证码错误,可能是太频繁")
5866
}
@@ -84,7 +92,14 @@ func ProcessLoginRsp(cli *client.QQClient, rsp *client.LoginResponse) (bool, err
8492
}
8593
return ProcessLoginRsp(cli, rsp)
8694
case client.OtherLoginError, client.UnknownLoginError:
87-
log.Errorf(rsp.ErrorMessage)
95+
//log.Errorf(rsp.ErrorMessage)
96+
msg := rsp.ErrorMessage
97+
if strings.Contains(msg, "版本") {
98+
log.Errorf("密码错误或账号被冻结")
99+
}
100+
if strings.Contains(msg, "上网环境") {
101+
log.Errorf("错误: 当前上网环境异常. 将更换服务器并重试. 如果频繁遇到此问题请打开设备锁.")
102+
}
88103
return false, fmt.Errorf("遇到不可处理的登录错误")
89104
}
90105
return false, fmt.Errorf("process login error")

0 commit comments

Comments
 (0)