Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit b4ec85fc569580e22a48213180b661bda9260e45 Author: Wim <wim@42.be> Date: Sat Jul 01 23:02:56 2017 +0000 Optimize UpdateUsers usage. (from @recht matterircd fork) diff --git a/matterclient/matterclient.go b/matterclient/matterclient.go index 61eccac..1dcab80 100644 --- a/matterclient/matterclient.go +++ b/matterclient/matterclient.go @@ -52717 +52715 @@ func (m *MMClient) UpdateLastViewed(channelId string) {  }    func (m *MMClient) UsernamesInChannel(channelId string) []string { - res, err := m.Client.GetMyChannelMembers() + res, err := m.Client.GetProfilesInChannel(channelId, 0, 50000, "")   if err != nil {   m.log.Errorf("UsernamesInChannel(%s) failed: %s", channelId, err)   return []string{}   } - members := res.Data.(*model.ChannelMembers) + members := res.Data.(map[string]*model.User)   result := []string{} - for _, channel := range *members { - if channel.ChannelId == channelId { - result = append(result, m.GetUser(channel.UserId).Username) - } + for _, member := range members { + result = append(result, member.Nickname)   }   return result  } @@ -6656 +66315 @@ func (m *MMClient) GetUsers() map[string]*model.User {  func (m *MMClient) GetUser(userId string) *model.User {   m.Lock()   defer m.Unlock() + u, ok := m.Users[userId] + if !ok { + res, err := m.Client.GetProfilesByIds([]string{userId}) + if err != nil { + return nil + } + u = res.Data.(map[string]*model.User)[userId] + m.Users[userId] = u + }   return m.Users[userId]  }