feat: 添加cqjson处理和url处理
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user