Add support for edited messages (mattermost)
This commit is contained in:
		@@ -143,12 +143,16 @@ func (b *Bmattermost) handleMatterClient(mchan chan *MMMessage) {
 | 
			
		||||
		}
 | 
			
		||||
		// 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.Data["team_id"].(string) == b.TeamId {
 | 
			
		||||
		if (message.Raw.Event == "posted" || message.Raw.Event == "post_edited") &&
 | 
			
		||||
			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
 | 
			
		||||
			m.Channel = message.Channel
 | 
			
		||||
			m.Text = message.Text
 | 
			
		||||
			if message.Raw.Event == "post_edited" && !b.Config.EditDisable {
 | 
			
		||||
				m.Text = message.Text + b.Config.EditSuffix
 | 
			
		||||
			}
 | 
			
		||||
			if len(message.Post.FileIds) > 0 {
 | 
			
		||||
				for _, link := range b.mc.GetPublicLinks(message.Post.FileIds) {
 | 
			
		||||
					m.Text = m.Text + "\n" + link
 | 
			
		||||
 
 | 
			
		||||
@@ -241,6 +241,14 @@ NicksPerRow=4
 | 
			
		||||
#OPTIONAL (default false)
 | 
			
		||||
PrefixMessagesWithNick=false
 | 
			
		||||
 | 
			
		||||
#Disable sending of edits to other bridges
 | 
			
		||||
#OPTIONAL (default false)
 | 
			
		||||
EditDisable=false
 | 
			
		||||
 | 
			
		||||
#Message to be appended to every edited message
 | 
			
		||||
#OPTIONAL (default empty)
 | 
			
		||||
EditSuffix=" (edited)"
 | 
			
		||||
 | 
			
		||||
#Nicks you want to ignore. 
 | 
			
		||||
#Messages from those users will not be sent to other bridges.
 | 
			
		||||
#OPTIONAL
 | 
			
		||||
 
 | 
			
		||||
@@ -251,7 +251,7 @@ func (m *MMClient) WsReceiver() {
 | 
			
		||||
 | 
			
		||||
func (m *MMClient) parseMessage(rmsg *Message) {
 | 
			
		||||
	switch rmsg.Raw.Event {
 | 
			
		||||
	case model.WEBSOCKET_EVENT_POSTED:
 | 
			
		||||
	case model.WEBSOCKET_EVENT_POSTED, model.WEBSOCKET_EVENT_POST_EDITED:
 | 
			
		||||
		m.parseActionPost(rmsg)
 | 
			
		||||
		/*
 | 
			
		||||
			case model.ACTION_USER_REMOVED:
 | 
			
		||||
@@ -280,7 +280,17 @@ func (m *MMClient) parseActionPost(rmsg *Message) {
 | 
			
		||||
	rmsg.Username = m.GetUser(data.UserId).Username
 | 
			
		||||
	rmsg.Channel = m.GetChannelName(data.ChannelId)
 | 
			
		||||
	rmsg.Type = data.Type
 | 
			
		||||
	rmsg.Team = m.GetTeamName(rmsg.Raw.Data["team_id"].(string))
 | 
			
		||||
	teamid, _ := rmsg.Raw.Data["team_id"].(string)
 | 
			
		||||
	// edit messsages have no team_id for some reason
 | 
			
		||||
	if teamid == "" {
 | 
			
		||||
		// we can find the team_id from the channelid
 | 
			
		||||
		result, _ := m.Client.GetChannel(data.ChannelId, "")
 | 
			
		||||
		teamid = result.Data.(*model.ChannelData).Channel.TeamId
 | 
			
		||||
		rmsg.Raw.Data["team_id"] = teamid
 | 
			
		||||
	}
 | 
			
		||||
	if teamid != "" {
 | 
			
		||||
		rmsg.Team = m.GetTeamName(teamid)
 | 
			
		||||
	}
 | 
			
		||||
	// direct message
 | 
			
		||||
	if rmsg.Raw.Data["channel_type"] == "D" {
 | 
			
		||||
		rmsg.Channel = m.GetUser(data.UserId).Username
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user