add message.IsAt and format message in group

This commit is contained in:
ivy1996-encode 2021-03-13 23:26:32 +08:00
parent d4b23ea156
commit f8d0f37047
2 changed files with 17 additions and 1 deletions

View File

@ -8,13 +8,14 @@ import (
func TestDefaultBot(t *testing.T) { func TestDefaultBot(t *testing.T) {
bot := DefaultBot() bot := DefaultBot()
messageHandler := func(message *Message) { messageHandler := func(message *Message) {
fmt.Println(message) fmt.Println(message.Content)
} }
bot.RegisterMessageHandler(messageHandler) bot.RegisterMessageHandler(messageHandler)
bot.UUIDCallback = PrintlnQrcodeUrl bot.UUIDCallback = PrintlnQrcodeUrl
if err := bot.Login(); err != nil { if err := bot.Login(); err != nil {
fmt.Println(err) fmt.Println(err)
return return
} }
bot.Block() bot.Block()
} }

View File

@ -7,6 +7,7 @@ import (
"strings" "strings"
"sync" "sync"
"time" "time"
"unicode"
) )
type Message struct { type Message struct {
@ -192,6 +193,20 @@ func (m *Message) init(bot *Bot) {
data := strings.Split(m.Content, ":<br/>") data := strings.Split(m.Content, ":<br/>")
m.Content = strings.Join(data[1:], "") m.Content = strings.Join(data[1:], "")
m.senderInGroupUserName = data[0] m.senderInGroupUserName = data[0]
receiver, err := m.Receiver()
if err != nil {
return
}
displayName := receiver.DisplayName
if displayName == "" {
displayName = receiver.NickName
}
atFlag := "@" + displayName
index := len(atFlag) + 1 + 1
if strings.HasPrefix(m.Content, atFlag) && unicode.IsSpace(rune(m.Content[index])) {
m.IsAt = true
m.Content = m.Content[index+1:]
}
} }
} }