feat: 添加cqjson处理和url处理

This commit is contained in:
lixiangwuxian
2024-10-13 15:18:43 +08:00
parent 22434ae5dd
commit 97234edda8
3 changed files with 72 additions and 3 deletions

View File

@@ -10,17 +10,43 @@ import (
"git.lxtend.com/qqbot/handler"
"git.lxtend.com/qqbot/model"
"git.lxtend.com/qqbot/util"
)
func init() {
handler.RegisterFrontMatchHandler("[CQ:json,data=", urlParser)
handler.RegisterFrontMatchHandler("[CQ:json,data=", cqJsonUrlParser)
handler.RegisterFrontMatchHandler("http://", plainTextUrlParser)
handler.RegisterFrontMatchHandler("https://", plainTextUrlParser)
}
func urlParser(msg model.Message) (reply model.Reply) {
func plainTextUrlParser(msg model.Message) (reply model.Reply) {
url := msg.RawMsg
url = strings.Split(url, " ")[0]
url = strings.Split(url, "\n")[0]
url = strings.Split(url, "\r")[0]
url = strings.Split(url, "\t")[0]
url, _ = removeTrackingParams(url)
newUrl, _ := resolveFinalURL(url)
newUrl, _ = removeTrackingParams(newUrl)
if util.IsEquivalentURL(url, newUrl) {
return model.Reply{
ReplyMsg: "",
ReferOriginMsg: false,
FromMsg: msg,
}
}
return model.Reply{
ReplyMsg: newUrl,
ReferOriginMsg: true,
FromMsg: msg,
}
}
func cqJsonUrlParser(msg model.Message) (reply model.Reply) {
qqdocurl, err := extractQQDocURL(msg.RawMsg)
if err != nil {
return model.Reply{
ReplyMsg: fmt.Sprintf("解析失败: %v", err),
ReplyMsg: "",
ReferOriginMsg: true,
FromMsg: msg,
}