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) {
bot := DefaultBot()
messageHandler := func(message *Message) {
fmt.Println(message)
fmt.Println(message.Content)
}
bot.RegisterMessageHandler(messageHandler)
bot.UUIDCallback = PrintlnQrcodeUrl
if err := bot.Login(); err != nil {
fmt.Println(err)
return
}
bot.Block()
}

View File

@ -7,6 +7,7 @@ import (
"strings"
"sync"
"time"
"unicode"
)
type Message struct {
@ -192,6 +193,20 @@ func (m *Message) init(bot *Bot) {
data := strings.Split(m.Content, ":<br/>")
m.Content = strings.Join(data[1:], "")
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:]
}
}
}