From 383c8617947c08c35b516196d1afea904e8ab56d Mon Sep 17 00:00:00 2001 From: Bartlomiej Palmowski Date: Sat, 21 Nov 2015 15:08:46 +0100 Subject: [PATCH 1/2] Add authorization and parametrize nick names. --- config.go | 3 +++ matterbridge.conf.sample | 3 +++ matterbridge.go | 11 ++++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/config.go b/config.go index ecdf65fa..84a46ebc 100644 --- a/config.go +++ b/config.go @@ -13,7 +13,9 @@ type Config struct { Server string Port int Nick string + Password string Channel string + SendMUserName bool } Mattermost struct { URL string @@ -22,6 +24,7 @@ type Config struct { Token string IconURL string SkipTLSVerify bool + IrcNickPrefix string } General struct { GiphyAPIKey string diff --git a/matterbridge.conf.sample b/matterbridge.conf.sample index f910e019..59b04907 100644 --- a/matterbridge.conf.sample +++ b/matterbridge.conf.sample @@ -5,6 +5,8 @@ UseTLS=false SkipTLSVerify=true nick="matterbot" channel="#matterbridge" +password="" +SendMUserName=true [mattermost] url="http://yourdomain/hooks/yourhookkey" @@ -13,6 +15,7 @@ showjoinpart=true #token=yourtokenfrommattermost IconURL="http://youricon.png" #SkipTLSVerify=true +IrcNickPrefix="irc-" [general] GiphyAPIKey=dc6zaTOxFJmzC diff --git a/matterbridge.go b/matterbridge.go index 8e669c54..6c6849e1 100644 --- a/matterbridge.go +++ b/matterbridge.go @@ -31,6 +31,7 @@ func NewBridge(name string, config *Config) *Bridge { func (b *Bridge) createIRC(name string) *irc.Connection { i := irc.IRC(b.Config.IRC.Nick, b.Config.IRC.Nick) i.UseTLS = b.Config.IRC.UseTLS + if b.Config.IRC.Password != "" { i.Password = b.Config.IRC.Password } i.TLSConfig = &tls.Config{InsecureSkipVerify: b.Config.IRC.SkipTLSVerify} i.Connect(b.Config.IRC.Server + ":" + strconv.Itoa(b.Config.IRC.Port)) time.Sleep(time.Second) @@ -52,11 +53,11 @@ func (b *Bridge) handlePrivMsg(event *irc.Event) { msg = event.Nick + " " } msg += event.Message() - b.Send("irc-"+event.Nick, msg) + b.Send(b.Config.Mattermost.IrcNickPrefix+event.Nick, msg) } func (b *Bridge) handleJoinPart(event *irc.Event) { - b.Send(b.Config.IRC.Nick, "irc-"+event.Nick+" "+strings.ToLower(event.Code)+"s "+event.Message()) + b.Send(b.Config.IRC.Nick, b.Config.Mattermost.IrcNickPrefix+event.Nick+" "+strings.ToLower(event.Code)+"s "+event.Message()) } func (b *Bridge) handleOther(event *irc.Event) { @@ -92,7 +93,11 @@ func (b *Bridge) handleMatter() { } texts := strings.Split(message.Text, "\n") for _, text := range texts { - b.i.Privmsg(b.Config.IRC.Channel, message.UserName+": "+text) + if (b.Config.IRC.SendMUserName) { + b.i.Privmsg(b.Config.IRC.Channel, message.UserName+": "+text) + } else { + b.i.Privmsg(b.Config.IRC.Channel, text) + } } } } From 23f04349540db40b18a10b9e27a52d7211d0e135 Mon Sep 17 00:00:00 2001 From: Bartlomiej Palmowski Date: Sat, 21 Nov 2015 15:49:42 +0100 Subject: [PATCH 2/2] Barebone support for priv messages sending. --- matterbridge.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/matterbridge.go b/matterbridge.go index 6c6849e1..18bb472c 100644 --- a/matterbridge.go +++ b/matterbridge.go @@ -53,7 +53,7 @@ func (b *Bridge) handlePrivMsg(event *irc.Event) { msg = event.Nick + " " } msg += event.Message() - b.Send(b.Config.Mattermost.IrcNickPrefix+event.Nick, msg) + b.Send(b.Config.Mattermost.IrcNickPrefix+event.Nick, "PRIV: "+msg) } func (b *Bridge) handleJoinPart(event *irc.Event) { @@ -90,6 +90,11 @@ func (b *Bridge) handleMatter() { case "!gif": message.Text = b.giphyRandom(strings.Fields(strings.Replace(message.Text, "!gif ", "", 1))) b.Send(b.Config.IRC.Nick, message.Text) + case "!priv": + who := strings.Fields(message.Text)[1] + msg := strings.Fields(message.Text)[2:] + b.i.Privmsg(who, strings.Join(msg, " ")) + continue } texts := strings.Split(message.Text, "\n") for _, text := range texts {