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

fix(cqcode): some escape error in cqcode serialize

fix typo
(cherry picked from commit ecf695a68d9be4eae9195eef2a17d28c889d4779)

fix escape
(cherry picked from commit 337e53ebc6cc59d660a065fe750f14710f00958b)
This commit is contained in:
wdvxdr 2021-04-04 15:28:47 +08:00
parent 2aed5d5a16
commit ae73451677
No known key found for this signature in database
GPG Key ID: 55FF1414A69CEBA6

View File

@ -4,7 +4,6 @@ import (
"bytes"
"crypto/md5"
"encoding/base64"
goBinary "encoding/binary"
"encoding/hex"
xml2 "encoding/xml"
"errors"
@ -46,15 +45,8 @@ var SplitURL = false
var magicCQ = uint32(0)
func init() {
const sizeInt = int(unsafe.Sizeof(0))
x := 0x1234
p := unsafe.Pointer(&x)
p2 := (*[sizeInt]byte)(p)
if p2[0] == 0 {
magicCQ = goBinary.BigEndian.Uint32([]byte("[CQ:"))
} else {
magicCQ = goBinary.LittleEndian.Uint32([]byte("[CQ:"))
}
var CQHeader = "[CQ:"
magicCQ = *(*uint32)(unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&CQHeader)).Data))
}
// add 指针运算
@ -232,7 +224,7 @@ func ToArrayMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r []M
} else {
m = MSG{
"type": "image",
"data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image", "url": CQCodeEscapeText(o.Url)},
"data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image", "url": o.Url},
}
}
case *message.FriendImageElement:
@ -244,7 +236,7 @@ func ToArrayMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r []M
} else {
m = MSG{
"type": "image",
"data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image", "url": CQCodeEscapeText(o.Url)},
"data": map[string]string{"file": hex.EncodeToString(o.Md5) + ".image", "url": o.Url},
}
}
case *message.GroupFlashImgElement:
@ -330,13 +322,13 @@ func ToStringMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r st
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))
r += fmt.Sprintf("[CQ:image,file=%s,url=%s]", hex.EncodeToString(o.Md5)+".image", CQCodeEscapeValue(o.Url))
}
case *message.FriendImageElement:
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))
r += fmt.Sprintf("[CQ:image,file=%s,url=%s]", hex.EncodeToString(o.Md5)+".image", CQCodeEscapeValue(o.Url))
}
case *message.GroupFlashImgElement:
return fmt.Sprintf("[CQ:image,type=flash,file=%s]", o.Filename)
@ -397,10 +389,7 @@ func (bot *CQBot) ConvertStringMessage(s string, isGroup bool) (r []message.IMes
if err != nil {
msgTime = time.Now().Unix()
}
messageSeq, err := strconv.ParseInt(d["seq"], 10, 64)
if err != nil {
messageSeq = 0
}
messageSeq, _ := strconv.ParseInt(d["seq"], 10, 64)
r = append([]message.IMessageElement{
&message.ReplyElement{
ReplySeq: int32(messageSeq),
@ -553,10 +542,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, isGroup bool) (r []messag
if err != nil {
msgTime = time.Now().Unix()
}
messageSeq, err := strconv.ParseInt(e.Get("data").Get("seq").String(), 10, 64)
if err != nil {
messageSeq = 0
}
messageSeq, _ := strconv.ParseInt(e.Get("data").Get("seq").String(), 10, 64)
r = append([]message.IMessageElement{
&message.ReplyElement{
ReplySeq: int32(messageSeq),