mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-05 03:23:49 +08:00
add array benchmark
This commit is contained in:
parent
ee3e1bac76
commit
a5314f0b6d
@ -589,6 +589,7 @@ End:
|
||||
|
||||
// ConvertObjectMessage 将消息JSON对象转为消息元素数组
|
||||
func (bot *CQBot) ConvertObjectMessage(m gjson.Result, isGroup bool) (r []message.IMessageElement) {
|
||||
d := make(map[string]string)
|
||||
convertElem := func(e gjson.Result) {
|
||||
t := e.Get("type").Str
|
||||
if t == "reply" && isGroup {
|
||||
@ -672,7 +673,9 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, isGroup bool) (r []messag
|
||||
}
|
||||
return
|
||||
}
|
||||
d := make(map[string]string)
|
||||
for i := range d {
|
||||
delete(d, i)
|
||||
}
|
||||
e.Get("data").ForEach(func(key, value gjson.Result) bool {
|
||||
d[key.Str] = value.String()
|
||||
return true
|
||||
@ -693,9 +696,10 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, isGroup bool) (r []messag
|
||||
return bot.ConvertStringMessage(m.Str, isGroup)
|
||||
}
|
||||
if m.IsArray() {
|
||||
for _, e := range m.Array() {
|
||||
m.ForEach(func(_, e gjson.Result) bool {
|
||||
convertElem(e)
|
||||
}
|
||||
return true
|
||||
})
|
||||
}
|
||||
if m.IsObject() {
|
||||
convertElem(m)
|
||||
|
@ -3,6 +3,8 @@ package coolq
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/tidwall/gjson"
|
||||
)
|
||||
|
||||
var bot = CQBot{}
|
||||
@ -13,10 +15,17 @@ func TestCQBot_ConvertStringMessage(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
var bench = `asdfqwerqwerqwer[CQ:face,id=115,text=111]asdfasdfasdfasdfasdfasdfasd[CQ:face,id=217]] [CQ:text,text=123] [`
|
||||
var bench = `asdfqwerqwerqwer[CQ:face,id=115,text=111]asdfasdfasdfasdfasdfasdfasd[CQ:face,id=217]] 123 [`
|
||||
var benchArray = gjson.Parse(`[{"type":"text","data":{"text":"asdfqwerqwerqwer"}},{"type":"face","data":{"id":"115","text":"111"}},{"type":"text","data":{"text":"asdfasdfasdfasdfasdfasdfasd"}},{"type":"face","data":{"id":"217"}},{"type":"text","data":{"text":"] "}},{"type":"text","data":{"text":"123"}},{"type":"text","data":{"text":" ["}}]`)
|
||||
|
||||
func BenchmarkCQBot_ConvertStringMessage(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
bot.ConvertStringMessage(bench, false)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkCQBot_ConvertObjectMessage(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
bot.ConvertObjectMessage(benchArray, false)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user