Skip to content

Commit d46b8a9

Browse files
committed
regex replace
1 parent 7a6db78 commit d46b8a9

File tree

2 files changed

+11
-15
lines changed

2 files changed

+11
-15
lines changed

config/config.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package config
22

33
import (
44
"encoding/json"
5+
56
"github.com/pkg/errors"
67
)
78

@@ -29,11 +30,12 @@ type GmcConfig struct {
2930
}
3031

3132
type ServerGroup struct {
32-
Name string `json:"name"` // 功能名称
33-
Disabled bool `json:"disabled"` // 不填false默认启用
34-
Urls []string `json:"urls"` // 服务器列表
35-
EventFilter []int32 `json:"event_filter"` // 事件过滤
36-
RegexFilter string `json:"regex_filter"` // 正则过滤
33+
Name string `json:"name"` // 功能名称
34+
Disabled bool `json:"disabled"` // 不填false默认启用
35+
Urls []string `json:"urls"` // 服务器列表
36+
EventFilter []int32 `json:"event_filter"` // 事件过滤
37+
RegexFilter string `json:"regex_filter"` // 正则过滤
38+
RegexReplace string `json:"regex_replace"` // 正则替换
3739
// TODO event filter, msg filter, regex filter, prefix filter, suffix filter
3840
}
3941

service/bot/remote.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,19 +255,13 @@ func HandleEventFrame(cli *client.QQClient, eventFrame *onebot.Frame) {
255255

256256
if ws.regexp != nil { // 有prefix filter
257257
if e, ok := eventFrame.Data.(*onebot.Frame_PrivateMessageEvent); ok {
258-
b := ws.regexp.Find([]byte(e.PrivateMessageEvent.RawMessage))
259-
if b == nil {
260-
report = false
261-
} else {
262-
e.PrivateMessageEvent.RawMessage = string(b)
258+
if report = ws.regexp.MatchString(e.PrivateMessageEvent.RawMessage); report && ws.RegexReplace != "" {
259+
e.PrivateMessageEvent.RawMessage = ws.regexp.ReplaceAllString(e.PrivateMessageEvent.RawMessage, ws.RegexReplace)
263260
}
264261
}
265262
if e, ok := eventFrame.Data.(*onebot.Frame_GroupMessageEvent); ok {
266-
b := ws.regexp.Find([]byte(e.GroupMessageEvent.RawMessage))
267-
if b == nil {
268-
report = false
269-
} else {
270-
e.GroupMessageEvent.RawMessage = string(b)
263+
if report = ws.regexp.MatchString(e.GroupMessageEvent.RawMessage); report && ws.RegexReplace != "" {
264+
e.GroupMessageEvent.RawMessage = ws.regexp.ReplaceAllString(e.GroupMessageEvent.RawMessage, ws.RegexReplace)
271265
}
272266
}
273267
}

0 commit comments

Comments
 (0)