forked from lug/matterbridge
		
	Add support for JOIN, PART and CTCP_ACTION
This commit is contained in:
		@@ -56,6 +56,7 @@ channel="#matterbridge"
 | 
			
		||||
url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey"  
 | 
			
		||||
#port the bridge webserver will listen on
 | 
			
		||||
port=9999
 | 
			
		||||
showjoinpart=true #show irc users joining and parting
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### mattermost
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ type Config struct {
 | 
			
		||||
	Mattermost struct {
 | 
			
		||||
		URL          string
 | 
			
		||||
		Port         int
 | 
			
		||||
		ShowJoinPart bool
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,3 +9,4 @@ channel="#matterbridge"
 | 
			
		||||
[mattermost]
 | 
			
		||||
url="http://yourdomain/hooks/yourhookkey"
 | 
			
		||||
port=9999
 | 
			
		||||
showjoinpart=true
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import (
 | 
			
		||||
	"github.com/thoj/go-ircevent"
 | 
			
		||||
	"log"
 | 
			
		||||
	"strconv"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -33,16 +34,31 @@ func (b *Bridge) createIRC(name string) *irc.Connection {
 | 
			
		||||
	log.Println("Joining", b.Config.IRC.Channel, "as", b.Config.IRC.Nick)
 | 
			
		||||
	i.Join(b.Config.IRC.Channel)
 | 
			
		||||
	i.AddCallback("PRIVMSG", b.handlePrivMsg)
 | 
			
		||||
	i.AddCallback("CTCP_ACTION", b.handlePrivMsg)
 | 
			
		||||
	if b.Config.Mattermost.ShowJoinPart {
 | 
			
		||||
		i.AddCallback("JOIN", b.handleJoinPart)
 | 
			
		||||
		i.AddCallback("PART", b.handleJoinPart)
 | 
			
		||||
	}
 | 
			
		||||
	return i
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b *Bridge) handlePrivMsg(event *irc.Event) {
 | 
			
		||||
	matterMessage := matterhook.OMessage{}
 | 
			
		||||
	matterMessage.Text = event.Message()
 | 
			
		||||
	if event.Code == "CTCP_ACTION" {
 | 
			
		||||
		matterMessage.Text = event.Nick + " "
 | 
			
		||||
	}
 | 
			
		||||
	matterMessage.Text += event.Message()
 | 
			
		||||
	matterMessage.UserName = "irc-" + event.Nick
 | 
			
		||||
	b.m.Send(matterMessage)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b *Bridge) handleJoinPart(event *irc.Event) {
 | 
			
		||||
	matterMessage := matterhook.OMessage{}
 | 
			
		||||
	matterMessage.Text = "irc-" + event.Nick + " " + strings.ToLower(event.Code) + "s " + event.Message()
 | 
			
		||||
	matterMessage.UserName = b.Config.IRC.Nick
 | 
			
		||||
	b.m.Send(matterMessage)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (b *Bridge) handleMatter() {
 | 
			
		||||
	for {
 | 
			
		||||
		message := b.m.Receive()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user