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/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 conf *config.Config
|
||||
// RemoveReplyAt 是否删除reply后的at
|
||||
var RemoveReplyAt bool
|
||||
|
||||
// ExtraReplyData 是否上报额外reply信息
|
||||
var ExtraReplyData bool
|
||||
|
||||
// IgnoreInvalidCQCode 是否忽略无效CQ码
|
||||
var IgnoreInvalidCQCode = false
|
||||
@ -49,7 +52,6 @@ var SplitURL = false
|
||||
var magicCQ = uint32(0)
|
||||
|
||||
func init() {
|
||||
conf = config.Get()
|
||||
CQHeader := "[CQ:"
|
||||
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 {
|
||||
replyElem := reply.(*message.ReplyElement)
|
||||
if conf.Message.ExtraReplyData {
|
||||
if ExtraReplyData {
|
||||
r = append(r, MSG{
|
||||
"type": "reply",
|
||||
"data": map[string]string{
|
||||
@ -161,7 +163,7 @@ func ToArrayMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r []M
|
||||
var m MSG
|
||||
switch o := elem.(type) {
|
||||
case *message.ReplyElement:
|
||||
if conf.Message.RemoveReplyAt && len(e) > i+1 {
|
||||
if RemoveReplyAt && len(e) > i+1 {
|
||||
elem, ok := e[i+1].(*message.AtElement)
|
||||
if ok && elem.Target == o.Sender {
|
||||
e[i+1] = nil
|
||||
@ -314,7 +316,7 @@ func ToStringMessage(e []message.IMessageElement, id int64, isRaw ...bool) (r st
|
||||
})
|
||||
if reply != nil {
|
||||
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]",
|
||||
toGlobalID(id, replyElem.ReplySeq),
|
||||
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 {
|
||||
switch o := elem.(type) {
|
||||
case *message.ReplyElement:
|
||||
if conf.Message.RemoveReplyAt && len(e) > i+1 {
|
||||
if RemoveReplyAt && len(e) > i+1 {
|
||||
elem, ok := e[i+1].(*message.AtElement)
|
||||
if ok && elem.Target == o.Sender {
|
||||
e[i+1] = nil
|
||||
|
@ -3,12 +3,9 @@ package coolq
|
||||
import (
|
||||
"fmt"
|
||||
"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) {
|
||||
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.SplitURL = conf.Message.FixURL
|
||||
coolq.ForceFragmented = conf.Message.ForceFragment
|
||||
coolq.RemoveReplyAt = conf.Message.RemoveReplyAt
|
||||
coolq.ExtraReplyData = conf.Message.ExtraReplyData
|
||||
for _, m := range conf.Servers {
|
||||
if h, ok := m["http"]; ok {
|
||||
hc := new(config.HTTPServer)
|
||||
|
Loading…
x
Reference in New Issue
Block a user