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()
|
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 {
|
if m.FromUserName == m.Bot.self.User.UserName {
|
||||||
return m.Bot.self.User, nil
|
return m.Bot.self.User, nil
|
||||||
}
|
}
|
||||||
for _, member := range members {
|
user, err := members.SearchByUserName(m.FromUserName)
|
||||||
if member.UserName == m.FromUserName {
|
if err != nil {
|
||||||
return member.Detail()
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
return user.Detail()
|
||||||
return nil, errors.New("no such user found")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取消息在群里面的发送者
|
// 获取消息在群里面的发送者
|
||||||
@ -78,12 +77,7 @@ func (m *Message) SenderInGroup() (*User, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, member := range group.MemberList {
|
return group.MemberList.SearchByUserName(m.senderInGroupUserName)
|
||||||
if m.senderInGroupUserName == member.UserName {
|
|
||||||
return member, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, errors.New("no such user found")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断消息是否由自己发送
|
// 判断消息是否由自己发送
|
||||||
|
24
user.go
24
user.go
@ -29,7 +29,7 @@ type User struct {
|
|||||||
RemarkPYQuanPin string
|
RemarkPYQuanPin string
|
||||||
Signature string
|
Signature string
|
||||||
MemberCount int
|
MemberCount int
|
||||||
MemberList []*User
|
MemberList Members
|
||||||
OwnerUin int
|
OwnerUin int
|
||||||
Statues int
|
Statues int
|
||||||
AttrStatus int
|
AttrStatus int
|
||||||
@ -161,16 +161,13 @@ func (s *Self) FileHelper() (*Friend, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, member := range members {
|
user, err := members.SearchByUserName("filehelper")
|
||||||
if member.UserName == "filehelper" {
|
if err != nil {
|
||||||
fileHelper := &Friend{member}
|
return nil, err
|
||||||
// 将找到的缓存起来,方便下次调用
|
}
|
||||||
s.fileHelper = fileHelper
|
s.fileHelper = &Friend{user}
|
||||||
return s.fileHelper, nil
|
return s.fileHelper, nil
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return nil, errors.New("filehelper does not exist")
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取所有的好友
|
// 获取所有的好友
|
||||||
func (s *Self) Friends(update ...bool) (Friends, error) {
|
func (s *Self) Friends(update ...bool) (Friends, error) {
|
||||||
@ -298,3 +295,12 @@ func (m Members) SetOwner(s *Self) {
|
|||||||
member.Self = s
|
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