1
0
mirror of https://github.com/Mrs4s/go-cqhttp.git synced 2025-05-05 19:43:49 +08:00

Merge branch 'dev'

This commit is contained in:
Mrs4s 2021-02-19 20:48:06 +08:00
commit c1a36caa99
10 changed files with 77 additions and 25 deletions

View File

@ -14,14 +14,12 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
# build and publish in parallel: linux/386, linux/amd64, windows/386, windows/amd64, darwin/amd64
# build and publish in parallel: linux/386, linux/amd64, windows/386, windows/amd64, darwin/amd64, darwin/arm64
goos: [linux, windows, darwin]
goarch: ["386", amd64, arm, arm64]
exclude:
- goos: darwin
goarch: arm
- goos: darwin
goarch: arm64
- goos: darwin
goarch: "386"
- goos: windows
@ -32,7 +30,7 @@ jobs:
- name: Setup Go environment
uses: actions/setup-go@v2.1.3
with:
go-version: 1.15
go-version: 1.16
- name: Build binary file
env:
GOOS: ${{ matrix.goos }}

View File

@ -8,14 +8,12 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
# build and publish in parallel: linux/386, linux/amd64, windows/386, windows/amd64, darwin/386, darwin/amd64
# build and publish in parallel: linux/386, linux/amd64, windows/386, windows/amd64, darwin/386, darwin/amd64, darwin/arm64
goos: [linux, windows, darwin]
goarch: ["386", amd64, arm, arm64]
exclude:
- goos: darwin
goarch: arm
- goos: darwin
goarch: arm64
- goos: darwin
goarch: "386"
- goos: windows
@ -32,6 +30,6 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
goos: ${{ matrix.goos }}
goarch: ${{ matrix.goarch }}
goversion: "https://golang.org/dl/go1.15.3.linux-amd64.tar.gz"
goversion: "https://golang.org/dl/go1.16.linux-amd64.tar.gz"
ldflags: -w -s -X "github.com/Mrs4s/go-cqhttp/coolq.Version=${{ env.RELEASE_VERSION }}"

View File

@ -1252,6 +1252,10 @@ func (bot *CQBot) CQCheckURLSafely(url string) MSG {
func (bot *CQBot) CQGetVersionInfo() MSG {
wd, _ := os.Getwd()
return OK(MSG{
"app_name": "go-cqhttp",
"app_version": Version,
"app_full_name": fmt.Sprintf("go-cqhttp-%s_%s_%s-%s", Version, runtime.GOOS, runtime.GOARCH, runtime.Version()),
"protocol_version": "v11",
"coolq_directory": wd,
"coolq_edition": "pro",
"go-cqhttp": true,

View File

@ -420,7 +420,21 @@ func (bot *CQBot) formatGroupMessage(m *message.GroupMessage) MSG {
gm["sender"].(MSG)["nickname"] = "匿名消息"
gm["sub_type"] = "anonymous"
} else {
mem := bot.Client.FindGroup(m.GroupCode).FindMember(m.Sender.Uin)
group := bot.Client.FindGroup(m.GroupCode)
mem := group.FindMember(m.Sender.Uin)
if mem == nil{
log.Warnf("获取 %v 成员信息失败,尝试刷新成员列表", m.Sender.Uin)
t, err := bot.Client.GetGroupMembers(group)
if err != nil {
log.Warnf("刷新群 %v 成员列表失败: %v", group.Uin, err)
return Failed(100, "GET_MEMBERS_API_ERROR", err.Error())
}
group.Members = t
mem = group.FindMember(m.Sender.Uin)
if mem != nil{
return Failed(100,"MEMBER_NOT_FOUND","群员不存在")
}
}
ms := gm["sender"].(MSG)
ms["role"] = func() string {
switch mem.Permission {

View File

@ -1,4 +1,4 @@
// +build linux windows,!arm darwin
// +build linux windows,!arm darwin,!arm64
// +build 386 amd64 arm arm64
// Package codec Slik编码核心模块

View File

@ -0,0 +1,8 @@
package codec
import "github.com/pkg/errors"
//EncodeToSilk 将音频编码为Silk
func EncodeToSilk(record []byte, tempName string, useCache bool) ([]byte, error) {
return nil, errors.New("not supported now")
}

4
go.mod
View File

@ -1,9 +1,9 @@
module github.com/Mrs4s/go-cqhttp
go 1.15
go 1.16
require (
github.com/Mrs4s/MiraiGo v0.0.0-20210206134348-800bf525ed0e
github.com/Mrs4s/MiraiGo v0.0.0-20210219090120-c4288bd213f3
github.com/dustin/go-humanize v1.0.0
github.com/gin-contrib/pprof v1.3.0
github.com/gin-gonic/gin v1.6.3

2
go.sum
View File

@ -2,6 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/Mrs4s/MiraiGo v0.0.0-20210206134348-800bf525ed0e h1:SnN+nyRdqN7sULnHUWCofP+Jxs3VJN/y8AlMpcz0nbk=
github.com/Mrs4s/MiraiGo v0.0.0-20210206134348-800bf525ed0e/go.mod h1:yhqA0NyKxUf7I/0HR/1OMchveFggX8wde04gqdGrNfU=
github.com/Mrs4s/MiraiGo v0.0.0-20210219090120-c4288bd213f3 h1:hsO/cT00Nxyi5FrnXImimBlcHKrdFh8yWEwp0OR88z8=
github.com/Mrs4s/MiraiGo v0.0.0-20210219090120-c4288bd213f3/go.mod h1:yhqA0NyKxUf7I/0HR/1OMchveFggX8wde04gqdGrNfU=
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=

View File

@ -148,7 +148,6 @@ func (s *webServer) logincore(relogin bool) {
} else if err == client.ErrAlreadyOnline {
break
}
log.Error("登录遇到错误: " + err.Error())
switch res.Error {
case client.SliderNeededError:
@ -157,12 +156,22 @@ func (s *webServer) logincore(relogin bool) {
log.Warnf("2. 使用Cef自动处理.")
log.Warnf("3. 不提交滑块并继续.(可能会导致上网环境异常错误)")
log.Warnf("详细信息请参考文档 -> https://github.com/Mrs4s/go-cqhttp/blob/master/docs/slider.md <-")
log.Warn("请输入(1 - 3): ")
text = readLine()
if s.Conf.WebUI != nil && s.Conf.WebUI.WebInput {
log.Warnf("请输入(1 - 3) (http://%s:%d/admin/do_web_write 输入)", s.Conf.WebUI.Host, s.Conf.WebUI.WebUIPort)
text = <-WebInput
} else {
log.Warn("请输入(1 - 3)")
text = readLine()
}
if strings.Contains(text, "1") {
log.Warnf("请用浏览器打开 -> %v <- 并获取Ticket.", res.VerifyUrl)
log.Warn("请输入Ticket (Enter 提交)")
text = readLine()
if s.Conf.WebUI != nil && s.Conf.WebUI.WebInput {
log.Warnf("请输入Ticket (http://%s:%d/admin/do_web_write 输入)", s.Conf.WebUI.Host, s.Conf.WebUI.WebUIPort)
text = <-WebInput
} else {
log.Warn("请输入Ticket (Enter 提交)")
text = readLine()
}
res, err = s.Cli.SubmitTicket(strings.TrimSpace(text))
goto Again
}
@ -199,31 +208,50 @@ func (s *webServer) logincore(relogin bool) {
res, err = s.Cli.SubmitCaptcha(strings.ReplaceAll(text, "\n", ""), res.CaptchaSign)
goto Again
case client.SMSNeededError:
log.Warnf("账号已开启设备锁, 按下 Enter 向手机 %v 发送短信验证码.", res.SMSPhone)
readLine()
if s.Conf.WebUI != nil && s.Conf.WebUI.WebInput {
log.Warnf("账号已开启设备锁, 已向手机 %v 发送短信验证码.", res.SMSPhone)
} else {
log.Warnf("账号已开启设备锁, 按下 Enter 向手机 %v 发送短信验证码.", res.SMSPhone)
readLine()
}
if !s.Cli.RequestSMS() {
log.Warnf("发送验证码失败,可能是请求过于频繁.")
time.Sleep(time.Second * 5)
continue
}
log.Warn("请输入短信验证码: (Enter 提交)")
text = readLine()
if s.Conf.WebUI != nil && s.Conf.WebUI.WebInput {
log.Warnf("请输入短信验证码: (http://%s:%d/admin/do_web_write 输入)", s.Conf.WebUI.Host, s.Conf.WebUI.WebUIPort)
text = <-WebInput
} else {
log.Warn("请输入短信验证码: (Enter 提交)")
text = readLine()
}
res, err = s.Cli.SubmitSMS(strings.ReplaceAll(strings.ReplaceAll(text, "\n", ""), "\r", ""))
goto Again
case client.SMSOrVerifyNeededError:
log.Warnf("账号已开启设备锁,请选择验证方式:")
log.Warnf("1. 向手机 %v 发送短信验证码", res.SMSPhone)
log.Warnf("2. 使用手机QQ扫码验证.")
log.Warn("请输入(1 - 2): ")
text = readLine()
if s.Conf.WebUI != nil && s.Conf.WebUI.WebInput {
log.Warnf("请输入(1 - 2) (http://%s:%d/admin/do_web_write 输入)", s.Conf.WebUI.Host, s.Conf.WebUI.WebUIPort)
text = <-WebInput
} else {
log.Warn("请输入(1 - 2)")
text = readLine()
}
if strings.Contains(text, "1") {
if !s.Cli.RequestSMS() {
log.Warnf("发送验证码失败,可能是请求过于频繁.")
time.Sleep(time.Second * 5)
os.Exit(0)
}
log.Warn("请输入短信验证码: (Enter 提交)")
text = readLine()
if s.Conf.WebUI != nil && s.Conf.WebUI.WebInput {
log.Warnf("请输入短信验证码: (http://%s:%d/admin/do_web_write 输入)....", s.Conf.WebUI.Host, s.Conf.WebUI.WebUIPort)
text = <-WebInput
} else {
log.Warn("请输入短信验证码: (Enter 提交)")
text = readLine()
}
res, err = s.Cli.SubmitSMS(strings.ReplaceAll(strings.ReplaceAll(text, "\n", ""), "\r", ""))
goto Again
}