diff --git a/bot_test.go b/bot_test.go index 72ca882..2eb6ce9 100644 --- a/bot_test.go +++ b/bot_test.go @@ -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() } diff --git a/message.go b/message.go index 9d8a6dc..b25fed8 100644 --- a/message.go +++ b/message.go @@ -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, ":
") 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:] + } } }