mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-06-19 14:05:03 +08:00
fix(config): only read config once
This commit is contained in:
parent
a0cb34dc7a
commit
6dfa5e5959
@ -28,7 +28,6 @@ import (
|
|||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
|
|
||||||
"github.com/Mrs4s/go-cqhttp/global"
|
"github.com/Mrs4s/go-cqhttp/global"
|
||||||
"github.com/Mrs4s/go-cqhttp/global/config"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -37,7 +36,11 @@ var typeReg = regexp.MustCompile(`\[CQ:(\w+)`)
|
|||||||
var paramReg = regexp.MustCompile(`,([\w\-.]+?)=([^,\]]+)`)
|
var paramReg = regexp.MustCompile(`,([\w\-.]+?)=([^,\]]+)`)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var conf *config.Config
|
// RemoveReplyAt 是否删除reply后的at
|
||||||
|
var RemoveReplyAt bool
|
||||||
|
|
||||||
|
// ExtraReplyData 是否上报额外reply信息
|
||||||
|
var ExtraReplyData bool
|
||||||
|
|
||||||
// IgnoreInvalidCQCode 是否忽略无效CQ码
|
// IgnoreInvalidCQCode 是否忽略无效CQ码
|
||||||
var IgnoreInvalidCQCode = false
|
var IgnoreInvalidCQCode = false
|
||||||
@ -49,7 +52,6 @@ var SplitURL = false
|
|||||||
var magicCQ = uint32(0)
|
var magicCQ = uint32(0)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
conf = config.Get()
|
|
||||||
CQHeader := "[CQ:"
|
CQHeader := "[CQ:"
|
||||||
magicCQ = *(*uint32)(unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&CQHeader)).Data))
|
magicCQ = *(*uint32)(unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&CQHeader)).Data))
|
||||||
}
|
}
|
||||||
@ -139,7 +141,7 @@ func ToArrayMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r []M
|
|||||||
})
|
})
|
||||||
if reply != nil {
|
if reply != nil {
|
||||||
replyElem := reply.(*message.ReplyElement)
|
replyElem := reply.(*message.ReplyElement)
|
||||||
if conf.Message.ExtraReplyData {
|
if ExtraReplyData {
|
||||||
r = append(r, MSG{
|
r = append(r, MSG{
|
||||||
"type": "reply",
|
"type": "reply",
|
||||||
"data": map[string]string{
|
"data": map[string]string{
|
||||||
@ -161,7 +163,7 @@ func ToArrayMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r []M
|
|||||||
var m MSG
|
var m MSG
|
||||||
switch o := elem.(type) {
|
switch o := elem.(type) {
|
||||||
case *message.ReplyElement:
|
case *message.ReplyElement:
|
||||||
if conf.Message.RemoveReplyAt && len(e) > i+1 {
|
if RemoveReplyAt && len(e) > i+1 {
|
||||||
elem, ok := e[i+1].(*message.AtElement)
|
elem, ok := e[i+1].(*message.AtElement)
|
||||||
if ok && elem.Target == o.Sender {
|
if ok && elem.Target == o.Sender {
|
||||||
e[i+1] = nil
|
e[i+1] = nil
|
||||||
@ -314,7 +316,7 @@ func ToStringMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r st
|
|||||||
})
|
})
|
||||||
if reply != nil {
|
if reply != nil {
|
||||||
replyElem := reply.(*message.ReplyElement)
|
replyElem := reply.(*message.ReplyElement)
|
||||||
if conf.Message.ExtraReplyData {
|
if ExtraReplyData {
|
||||||
r += fmt.Sprintf("[CQ:reply,id=%d,seq=%d,qq=%d,time=%d,text=%s]",
|
r += fmt.Sprintf("[CQ:reply,id=%d,seq=%d,qq=%d,time=%d,text=%s]",
|
||||||
toGlobalID(id, replyElem.ReplySeq),
|
toGlobalID(id, replyElem.ReplySeq),
|
||||||
replyElem.ReplySeq, replyElem.Sender, replyElem.Time,
|
replyElem.ReplySeq, replyElem.Sender, replyElem.Time,
|
||||||
@ -326,7 +328,7 @@ func ToStringMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r st
|
|||||||
for i, elem := range e {
|
for i, elem := range e {
|
||||||
switch o := elem.(type) {
|
switch o := elem.(type) {
|
||||||
case *message.ReplyElement:
|
case *message.ReplyElement:
|
||||||
if conf.Message.RemoveReplyAt && len(e) > i+1 {
|
if RemoveReplyAt && len(e) > i+1 {
|
||||||
elem, ok := e[i+1].(*message.AtElement)
|
elem, ok := e[i+1].(*message.AtElement)
|
||||||
if ok && elem.Target == o.Sender {
|
if ok && elem.Target == o.Sender {
|
||||||
e[i+1] = nil
|
e[i+1] = nil
|
||||||
|
@ -3,12 +3,9 @@ package coolq
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/Mrs4s/MiraiGo/client"
|
|
||||||
"github.com/Mrs4s/go-cqhttp/global"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var bot = NewQQBot(client.NewClient(1, ""), global.DefaultConfig())
|
var bot = CQBot{}
|
||||||
|
|
||||||
func TestCQBot_ConvertStringMessage(t *testing.T) {
|
func TestCQBot_ConvertStringMessage(t *testing.T) {
|
||||||
for _, v := range bot.ConvertStringMessage(`[CQ:face,id=115,text=111][CQ:face,id=217]] [CQ:text,text=123] [`, false) {
|
for _, v := range bot.ConvertStringMessage(`[CQ:face,id=115,text=111][CQ:face,id=217]] [CQ:text,text=123] [`, false) {
|
||||||
|
2
main.go
2
main.go
@ -380,6 +380,8 @@ func main() {
|
|||||||
coolq.IgnoreInvalidCQCode = conf.Message.IgnoreInvalidCQCode
|
coolq.IgnoreInvalidCQCode = conf.Message.IgnoreInvalidCQCode
|
||||||
coolq.SplitURL = conf.Message.FixURL
|
coolq.SplitURL = conf.Message.FixURL
|
||||||
coolq.ForceFragmented = conf.Message.ForceFragment
|
coolq.ForceFragmented = conf.Message.ForceFragment
|
||||||
|
coolq.RemoveReplyAt = conf.Message.RemoveReplyAt
|
||||||
|
coolq.ExtraReplyData = conf.Message.ExtraReplyData
|
||||||
for _, m := range conf.Servers {
|
for _, m := range conf.Servers {
|
||||||
if h, ok := m["http"]; ok {
|
if h, ok := m["http"]; ok {
|
||||||
hc := new(config.HTTPServer)
|
hc := new(config.HTTPServer)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user