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