Thumbnail

rani/matterbridge.git

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

commit a420906df2b8af6457a542c351413eb0a4d6f476 Author: Wim <wim@42.be> Date: Sun Nov 25 19:32:16 2018 +0000 Add option to send RAW commands after connection (irc). Fixes #490 (#604) diff --git a/bridge/config/config.go b/bridge/config/config.go index 48c36d9..21010db 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -1096 +1097 @@ type Protocol struct {   ReplaceMessages [][]string // all protocols   ReplaceNicks [][]string // all protocols   RemoteNickFormat string // all protocols + RunCommands []string // irc   Server string // IRC,mattermost,XMPP,discord   ShowJoinPart bool // all protocols   ShowTopicChange bool // slack diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go index eee432b..1e81324 100644 --- a/bridge/irc/irc.go +++ b/bridge/irc/irc.go @@ -3656 +3657 @@ func (b *Birc) handleOther(client *girc.Client, event girc.Event) {    func (b *Birc) handleOtherAuth(client *girc.Client, event girc.Event) {   b.handleNickServ() + b.handleRunCommands()   // we are now fully connected   b.connected <- nil  } @@ -4716 +47215 @@ func (b *Birc) formatnicks(nicks []string) string {   return strings.Join(nicks, ", ") + " currently on IRC"  }   +func (b *Birc) handleRunCommands() { + for _, cmd := range b.GetStringSlice("RunCommands") { + if err := b.i.Cmd.SendRaw(cmd); err != nil { + b.Log.Errorf("RunCommands %s failed: %s", cmd, err) + } + time.Sleep(time.Second) + } +} +  func (b *Birc) handleNickServ() {   if !b.GetBool("UseSASL") && b.GetString("NickServNick") != "" && b.GetString("NickServPassword") != "" {   b.Log.Debugf("Sending identify to nickserv %s", b.GetString("NickServNick")) diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index 5e7be29..b51f351 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -966 +9611 @@ RejoinDelay=0  #Only works in IRC right now.  ColorNicks=false   +#RunCommands allows you to send RAW irc commands after connection +#Array of strings +#OPTIONAL (default empty) +RunCommands=["PRIVMSG user hello","PRIVMSG chanserv something"] +  #Nicks you want to ignore.  #Messages from those users will not be sent to other bridges.  #OPTIONAL