Add Members.SearchByUserName func

This commit is contained in:
Ivy1996-encode 2021-02-21 11:27:02 +08:00
parent 55a3104f07
commit 5c0c7e1f5b
3 changed files with 44 additions and 20 deletions

View File

@ -50,3 +50,27 @@ func TestBotMessageHandler(t *testing.T) {
}
bot.Block()
}
func TestBotMessageSender(t *testing.T) {
messageHandler := func(message *Message) {
if message.IsSendByGroup() {
sender, err := message.Sender()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(sender)
if message.IsText() || message.Content == "test message" {
message.ReplyText("hello")
}
}
}
bot := DefaultBot()
bot.RegisterMessageHandler(messageHandler)
bot.UUIDCallback = PrintlnQrcodeUrl
if err := bot.Login(); err != nil {
fmt.Println(err)
return
}
bot.Block()
}

View File

@ -57,12 +57,11 @@ func (m *Message) Sender() (*User, error) {
if m.FromUserName == m.Bot.self.User.UserName {
return m.Bot.self.User, nil
}
for _, member := range members {
if member.UserName == m.FromUserName {
return member.Detail()
}
user, err := members.SearchByUserName(m.FromUserName)
if err != nil {
return nil, err
}
return nil, errors.New("no such user found")
return user.Detail()
}
// 获取消息在群里面的发送者
@ -78,12 +77,7 @@ func (m *Message) SenderInGroup() (*User, error) {
if err != nil {
return nil, err
}
for _, member := range group.MemberList {
if m.senderInGroupUserName == member.UserName {
return member, nil
}
}
return nil, errors.New("no such user found")
return group.MemberList.SearchByUserName(m.senderInGroupUserName)
}
// 判断消息是否由自己发送

24
user.go
View File

@ -29,7 +29,7 @@ type User struct {
RemarkPYQuanPin string
Signature string
MemberCount int
MemberList []*User
MemberList Members
OwnerUin int
Statues int
AttrStatus int
@ -161,15 +161,12 @@ func (s *Self) FileHelper() (*Friend, error) {
if err != nil {
return nil, err
}
for _, member := range members {
if member.UserName == "filehelper" {
fileHelper := &Friend{member}
// 将找到的缓存起来,方便下次调用
s.fileHelper = fileHelper
return s.fileHelper, nil
}
user, err := members.SearchByUserName("filehelper")
if err != nil {
return nil, err
}
return nil, errors.New("filehelper does not exist")
s.fileHelper = &Friend{user}
return s.fileHelper, nil
}
// 获取所有的好友
@ -298,3 +295,12 @@ func (m Members) SetOwner(s *Self) {
member.Self = s
}
}
func (m Members) SearchByUserName(username string) (*User, error) {
for _, member := range m {
if member.UserName == username {
return member, nil
}
}
return nil, errors.New("no such user found")
}