From 7bbf2e6ba17fe8d03dd6ef1574e9d686255dbd5d Mon Sep 17 00:00:00 2001 From: cdle Date: Mon, 5 Jun 2023 21:05:15 +0800 Subject: [PATCH] x --- core/node_strings.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/core/node_strings.go b/core/node_strings.go index 3c1ad48..5763dfe 100644 --- a/core/node_strings.go +++ b/core/node_strings.go @@ -80,6 +80,31 @@ func (sender *Strings) DecodeQueryString(querystring string) map[string]interfac return params } +func (sender *Strings) HideCQEmoji(text string) map[string]interface{} { + i := 0 + var ms = map[string]string{} + text = regexp.MustCompile(`\[CQ:(\w+)(.*?)\]`).ReplaceAllStringFunc(text, func(s string) string { + v := fmt.Sprintf("#%d#", i) + i++ + ms[v] = s + return v + }) + text = emoji.ReplaceEmojisWithFunc(text, func(e emoji.Emoji) string { + v := fmt.Sprintf("#%d#", i) + i++ + ms[v] = e.Character + return v + }) + return map[string]interface{}{ + "text": text, + "recover": func(text string) string { + return regexp.MustCompile(`#\d{1,4}#`).ReplaceAllStringFunc(text, func(s string) string { + return ms[s] + }) + }, + } +} + // 将含有 CQ码 的文本解析成文本和 CQ 对象数组 func (sender *Strings) ParseCQText(text string) []interface{} { cqRegex := regexp.MustCompile(`\[CQ:(\w+)(.*?)\]`)