Add Members.SearchByUserName func
This commit is contained in:
parent
55a3104f07
commit
5c0c7e1f5b
24
bot_test.go
24
bot_test.go
@ -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()
|
||||
}
|
||||
|
16
message.go
16
message.go
@ -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
24
user.go
@ -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")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user