commit 4fc672838677654082153a2bc81b5627364135b2
Author: Wim <wim@42.be>
Date: Sat Nov 12 22:00:53 2016 +0000
diff --git a/bridge/mattermost/mattermost.go b/bridge/mattermost/mattermost.go
index 7f7340b..8328f0b 100644
--- a/bridge/mattermost/mattermost.go
+++ b/bridge/mattermost/mattermost.go
@@ -1537 +1537 @@ func (b *Bmattermost) handleMatterClient(mchan chan *MMMessage) {
for message := range b.mc.MessageChan {
// do not post our own messages back to irc
// only listen to message from our team
- if message.Raw.Event == "posted" && b.mc.User.Username != message.Username && message.Raw.TeamId == b.TeamId {
+ if message.Raw.Event == "posted" && b.mc.User.Username != message.Username && message.Raw.Data["team_id"].(string) == b.TeamId {
flog.Debugf("Receiving from matterclient %#v", message)
m := &MMMessage{}
m.Username = message.Username
diff --git a/matterclient/matterclient.go b/matterclient/matterclient.go
index 38be9b0..90c8d1a 100644
--- a/matterclient/matterclient.go
+++ b/matterclient/matterclient.go
@@ -2647 +2647 @@ func (m *MMClient) parseActionPost(rmsg *Message) {
}
rmsg.Username = m.GetUser(data.UserId).Username
rmsg.Channel = m.GetChannelName(data.ChannelId)
- rmsg.Team = m.GetTeamName(rmsg.Raw.TeamId)
+ rmsg.Team = m.GetTeamName(rmsg.Raw.Data["team_id"].(string))
// direct message
if rmsg.Raw.Data["channel_type"] == "D" {
rmsg.Channel = m.GetUser(data.UserId).Username
@@ -2757 +2757 @@ func (m *MMClient) parseActionPost(rmsg *Message) {
}
func (m *MMClient) UpdateUsers() error {
- mmusers, err := m.Client.GetProfilesForDirectMessageList(m.Team.Id)
+ mmusers, err := m.Client.GetProfiles(0, 1000, "")
if err != nil {
return errors.New(err.DetailedError)
}
@@ -3057 +3057 @@ func (m *MMClient) GetChannelName(channelId string) string {
m.RLock()
defer m.RUnlock()
for _, t := range m.OtherTeams {
- for _, channel := range append(t.Channels.Channels, t.MoreChannels.Channels...) {
+ for _, channel := range append(*t.Channels, *t.MoreChannels...) {
if channel.Id == channelId {
return channel.Name
}
@@ -3227 +3227 @@ func (m *MMClient) GetChannelId(name string, teamId string) string {
}
for _, t := range m.OtherTeams {
if t.Id == teamId {
- for _, channel := range append(t.Channels.Channels, t.MoreChannels.Channels...) {
+ for _, channel := range append(*t.Channels, *t.MoreChannels...) {
if channel.Name == name {
return channel.Id
}
@@ -3367 +3367 @@ func (m *MMClient) GetChannelHeader(channelId string) string {
m.RLock()
defer m.RUnlock()
for _, t := range m.OtherTeams {
- for _, channel := range append(t.Channels.Channels, t.MoreChannels.Channels...) {
+ for _, channel := range append(*t.Channels, *t.MoreChannels...) {
if channel.Id == channelId {
return channel.Header
}
@@ -3547 +3547 @@ func (m *MMClient) PostMessage(channelId string, text string) {
func (m *MMClient) JoinChannel(channelId string) error {
m.RLock()
defer m.RUnlock()
- for _, c := range m.Team.Channels.Channels {
+ for _, c := range *m.Team.Channels {
if c.Id == channelId {
m.log.Debug("Not joining ", channelId, " already joined.")
return nil
@@ -3977 +3977 @@ func (m *MMClient) GetPublicLink(filename string) string {
if err != nil {
return ""
}
- return res.Data.(string)
+ return res
}
func (m *MMClient) GetPublicLinks(filenames []string) []string {
@@ -4077 +4077 @@ func (m *MMClient) GetPublicLinks(filenames []string) []string {
if err != nil {
continue
}
- output = append(output, res.Data.(string))
+ output = append(output, res)
}
return output
}
@@ -43215 +43217 @@ func (m *MMClient) UpdateLastViewed(channelId string) {
}
func (m *MMClient) UsernamesInChannel(channelId string) []string {
- ceiRes, err := m.Client.GetChannelExtraInfo(channelId, 5000, "")
+ res, err := m.Client.GetMyChannelMembers()
if err != nil {
m.log.Errorf("UsernamesInChannel(%s) failed: %s", channelId, err)
return []string{}
}
- extra := ceiRes.Data.(*model.ChannelExtra)
+ members := res.Data.(*model.ChannelMembers)
result := []string{}
- for _, member := range extra.Members {
- result = append(result, member.Username)
+ for _, channel := range *members {
+ if channel.ChannelId == channelId {
+ result = append(result, m.GetUser(channel.UserId).Username)
+ }
}
return result
}
@@ -50010 +50210 @@ func (m *MMClient) GetChannels() []*model.Channel {
defer m.RUnlock()
var channels []*model.Channel
// our primary team channels first
- channels = append(channels, m.Team.Channels.Channels...)
+ channels = append(channels, *m.Team.Channels...)
for _, t := range m.OtherTeams {
if t.Id != m.Team.Id {
- channels = append(channels, t.Channels.Channels...)
+ channels = append(channels, *t.Channels...)
}
}
return channels
@@ -5157 +5177 @@ func (m *MMClient) GetMoreChannels() []*model.Channel {
defer m.RUnlock()
var channels []*model.Channel
for _, t := range m.OtherTeams {
- channels = append(channels, t.MoreChannels.Channels...)
+ channels = append(channels, *t.MoreChannels...)
}
return channels
}
@@ -5268 +5288 @@ func (m *MMClient) GetTeamFromChannel(channelId string) string {
defer m.RUnlock()
var channels []*model.Channel
for _, t := range m.OtherTeams {
- channels = append(channels, t.Channels.Channels...)
- channels = append(channels, t.MoreChannels.Channels...)
+ channels = append(channels, *t.Channels...)
+ channels = append(channels, *t.MoreChannels...)
for _, c := range channels {
if c.Id == channelId {
return t.Id
@@ -54011 +54213 @@ func (m *MMClient) GetTeamFromChannel(channelId string) string {
func (m *MMClient) GetLastViewedAt(channelId string) int64 {
m.RLock()
defer m.RUnlock()
- for _, t := range m.OtherTeams {
- if _, ok := t.Channels.Members[channelId]; ok {
- return t.Channels.Members[channelId].LastViewedAt
+ /*
+ for _, t := range m.OtherTeams {
+ if _, ok := t.Channels.Members[channelId]; ok {
+ return t.Channels.Members[channelId].LastViewedAt
+ }
}
- }
+ */
return 0
}
@@ -6197 +6237 @@ func (m *MMClient) initUser() error {
//m.log.Debug("initUser(): loading all team data")
for _, v := range initData.Teams {
m.Client.SetTeamId(v.Id)
- mmusers, _ := m.Client.GetProfiles(v.Id, "")
+ mmusers, _ := m.Client.GetProfiles(0, 1000, "")
t := &Team{Team: v, Users: mmusers.Data.(map[string]*model.User), Id: v.Id}
mmchannels, _ := m.Client.GetChannels("")
t.Channels = mmchannels.Data.(*model.ChannelList)