Thumbnail

rani/matterbridge.git

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

commit b346ac868b052f07e88cf092d5ee1a04e9f14f81 Author: Wim <wim@42.be> Date: Sat Oct 24 16:39:01 2015 +0000 Add support for JOIN, PART and CTCP_ACTION diff --git a/README.md b/README.md index 4071dfe..7f34799 100644 --- a/README.md +++ b/README.md @@ -566 +567 @@ 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 diff --git a/config.go b/config.go index 17d4bbd..07da373 100644 --- a/config.go +++ b/config.go @@ -168 +169 @@ type Config struct {   Channel string   }   Mattermost struct { - URL string - Port int + URL string + Port int + ShowJoinPart bool   }  }   diff --git a/matterbridge.conf.sample b/matterbridge.conf.sample index a7cb275..bea46e9 100644 --- a/matterbridge.conf.sample +++ b/matterbridge.conf.sample @@ -93 +94 @@ channel="#matterbridge"  [mattermost]  url="http://yourdomain/hooks/yourhookkey"  port=9999 +showjoinpart=true diff --git a/matterbridge.go b/matterbridge.go index 4ba3c00..d6ec67e 100644 --- a/matterbridge.go +++ b/matterbridge.go @@ -66 +67 @@ import (   "github.com/thoj/go-ircevent"   "log"   "strconv" + "strings"   "time"  )   @@ -3316 +3431 @@ 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()