From 2c7b56a79cd05d74cae85bdb4a323b992c82dc98 Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Mon, 23 Nov 2020 14:59:00 +0800 Subject: [PATCH] fix get_msg. --- coolq/api.go | 15 +++++++++++---- coolq/cqcode.go | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/coolq/api.go b/coolq/api.go index 1afb11a..b8e04ba 100644 --- a/coolq/api.go +++ b/coolq/api.go @@ -718,17 +718,24 @@ func (bot *CQBot) CQGetMessage(messageId int32) MSG { return Failed(100) } sender := msg["sender"].(message.Sender) - _, group := msg["group"] + gid, isGroup := msg["group"] + raw := msg["message"].(string) return OK(MSG{ "message_id": messageId, "real_id": msg["message-id"], - "group": group, + "group": isGroup, + "group_id": gid, "sender": MSG{ "user_id": sender.Uin, "nickname": sender.Nickname, }, - "time": msg["time"], - "message": msg["message"], + "time": msg["time"], + "message": ToFormattedMessage(bot.ConvertStringMessage(raw, isGroup), func() int64 { + if isGroup { + return gid.(int64) + } + return sender.Uin + }(), false), }) } diff --git a/coolq/cqcode.go b/coolq/cqcode.go index b0aafd6..7cf9037 100644 --- a/coolq/cqcode.go +++ b/coolq/cqcode.go @@ -183,6 +183,30 @@ func ToArrayMessage(e []message.IMessageElement, code int64, raw ...bool) (r []M "data": map[string]string{"file": o.Filename, "url": o.Url}, } } + case *message.GroupImageElement: + if ur { + m = MSG{ + "type": "image", + "data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image"}, + } + } else { + m = MSG{ + "type": "image", + "data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image", "url": CQCodeEscapeText(o.Url)}, + } + } + case *message.FriendImageElement: + if ur { + m = MSG{ + "type": "image", + "data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image"}, + } + } else { + m = MSG{ + "type": "image", + "data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image", "url": CQCodeEscapeText(o.Url)}, + } + } case *message.GroupFlashImgElement: return []MSG{{ "type": "image", @@ -262,9 +286,17 @@ func ToStringMessage(e []message.IMessageElement, code int64, raw ...bool) (r st r += fmt.Sprintf(`[CQ:image,file=%s,url=%s]`, o.Filename, CQCodeEscapeValue(o.Url)) } case *message.GroupImageElement: - r += fmt.Sprintf("[CQ:image,file=%s]", hex.EncodeToString(o.Md5)+".image") + if ur { + r += fmt.Sprintf("[CQ:image,file=%s]", hex.EncodeToString(o.Md5)+".image") + } else { + r += fmt.Sprintf("[CQ:image,file=%s,url=%s]", hex.EncodeToString(o.Md5)+".image", CQCodeEscapeText(o.Url)) + } case *message.FriendImageElement: - r += fmt.Sprintf("[CQ:image,file=%s]", hex.EncodeToString(o.Md5)+".image") + if ur { + r += fmt.Sprintf("[CQ:image,file=%s]", hex.EncodeToString(o.Md5)+".image") + } else { + r += fmt.Sprintf("[CQ:image,file=%s,url=%s]", hex.EncodeToString(o.Md5)+".image", CQCodeEscapeText(o.Url)) + } case *message.GroupFlashImgElement: return fmt.Sprintf("[CQ:image,type=flash,file=%s]", o.Filename) case *message.FriendFlashImgElement: