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

optimize the return value of group-message sending error

This commit is contained in:
Mrs4s 2022-08-14 01:40:14 +08:00
parent 202a75ee2d
commit 933bdee18e
No known key found for this signature in database
GPG Key ID: 3186E98FA19CE3A7
2 changed files with 10 additions and 10 deletions

View File

@ -765,9 +765,9 @@ func (bot *CQBot) CQSendGroupMessage(groupID int64, m gjson.Result, autoEscape b
} }
} }
fixAt(elem) fixAt(elem)
mid := bot.SendGroupMessage(groupID, &message.SendingMessage{Elements: elem}) mid, err := bot.SendGroupMessage(groupID, &message.SendingMessage{Elements: elem})
if mid == -1 { if err != nil {
return Failed(100, "SEND_MSG_API_ERROR", "请参考 go-cqhttp 端输出") return Failed(100, "SEND_MSG_API_ERROR", err.Error())
} }
log.Infof("发送群 %v(%v) 的消息: %v (%v)", group.Name, groupID, limitedString(m.String()), mid) log.Infof("发送群 %v(%v) 的消息: %v (%v)", group.Name, groupID, limitedString(m.String()), mid)
return OK(global.MSG{"message_id": mid}) return OK(global.MSG{"message_id": mid})

View File

@ -248,7 +248,7 @@ func (bot *CQBot) uploadMedia(target message.Source, elements []message.IMessage
} }
// SendGroupMessage 发送群消息 // SendGroupMessage 发送群消息
func (bot *CQBot) SendGroupMessage(groupID int64, m *message.SendingMessage) int32 { func (bot *CQBot) SendGroupMessage(groupID int64, m *message.SendingMessage) (int32, error) {
newElem := make([]message.IMessageElement, 0, len(m.Elements)) newElem := make([]message.IMessageElement, 0, len(m.Elements))
group := bot.Client.FindGroup(groupID) group := bot.Client.FindGroup(groupID)
source := message.Source{ source := message.Source{
@ -264,14 +264,14 @@ func (bot *CQBot) SendGroupMessage(groupID int64, m *message.SendingMessage) int
mem.Poke() mem.Poke()
} }
} }
return 0 return 0, nil
case *message.MusicShareElement: case *message.MusicShareElement:
ret, err := bot.Client.SendGroupMusicShare(groupID, i) ret, err := bot.Client.SendGroupMusicShare(groupID, i)
if err != nil { if err != nil {
log.Warnf("警告: 群 %v 富文本消息发送失败: %v", groupID, err) log.Warnf("警告: 群 %v 富文本消息发送失败: %v", groupID, err)
return -1 return -1, errors.Wrap(err, "send group music share error")
} }
return bot.InsertGroupMessage(ret) return bot.InsertGroupMessage(ret), nil
case *message.AtElement: case *message.AtElement:
if i.Target == 0 && group.SelfPermission() == client.Member { if i.Target == 0 && group.SelfPermission() == client.Member {
e = message.NewText("@全体成员") e = message.NewText("@全体成员")
@ -281,16 +281,16 @@ func (bot *CQBot) SendGroupMessage(groupID int64, m *message.SendingMessage) int
} }
if len(newElem) == 0 { if len(newElem) == 0 {
log.Warnf("群消息发送失败: 消息为空.") log.Warnf("群消息发送失败: 消息为空.")
return -1 return -1, errors.New("empty message")
} }
m.Elements = newElem m.Elements = newElem
bot.checkMedia(newElem, groupID) bot.checkMedia(newElem, groupID)
ret := bot.Client.SendGroupMessage(groupID, m) ret := bot.Client.SendGroupMessage(groupID, m)
if ret == nil || ret.Id == -1 { if ret == nil || ret.Id == -1 {
log.Warnf("群消息发送失败: 账号可能被风控.") log.Warnf("群消息发送失败: 账号可能被风控.")
return -1 return -1, errors.New("send group message failed: blocked by server")
} }
return bot.InsertGroupMessage(ret) return bot.InsertGroupMessage(ret), nil
} }
// SendPrivateMessage 发送私聊消息 // SendPrivateMessage 发送私聊消息