diff --git a/bridge/irc/handlers.go b/bridge/irc/handlers.go index 990636ba..88716514 100644 --- a/bridge/irc/handlers.go +++ b/bridge/irc/handlers.go @@ -84,6 +84,10 @@ func isKill(quitmsg string) bool { return strings.HasPrefix(quitmsg, "Killed") || strings.HasPrefix(quitmsg, "Local kill") || strings.HasPrefix(quitmsg[1:], "-lined") } +func suppressUrls(msg *string) { + *msg = strings.ReplaceAll(*msg, "://", ": //") +} + func (b *Birc) handleJoinPart(client *girc.Client, event girc.Event) { if len(event.Params) == 0 { b.Log.Debugf("handleJoinPart: empty Params? %#v", event) @@ -114,6 +118,9 @@ func (b *Birc) handleJoinPart(client *girc.Client, event girc.Event) { if event.Command == "PART" && len(event.Params) >= 2 { partmsg = " with message: " + event.Last() } + if len(partmsg) > 0 && b.SuppressPartQuitURLs { + suppressUrls(&partmsg) + } msg := config.Message{Username: "system", Text: event.Source.Name + " " + strings.ToLower(event.Command) + "s" + partmsg, Channel: channel, Account: b.Account, Event: config.EventJoinLeave} if b.GetBool("verbosejoinpart") { b.Log.Debugf("<= Sending verbose JOIN_LEAVE event from %s to gateway", b.Account) @@ -289,6 +296,9 @@ func (b *Birc) handleQuit(client *girc.Client, event girc.Event) { if len(event.Params) >= 1 { quitmsg = " with message: " + event.Last() } + if len(quitmsg) > 0 && b.SuppressPartQuitURLs { + suppressUrls(&quitmsg) + } if b.GetBool("verbosejoinpart") { verbosequit = " (" + event.Source.Ident + "@" + event.Source.Host + ")" } diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go index db4134fb..ed356e00 100644 --- a/bridge/irc/irc.go +++ b/bridge/irc/irc.go @@ -34,6 +34,7 @@ type Birc struct { connected chan error Local chan config.Message // local queue for flood control FirstConnection, authDone bool + SuppressPartQuitURLs bool MessageDelay, MessageQueue, MessageLength int ActivityTimeout int64 channels map[string]bool @@ -75,6 +76,7 @@ func New(cfg *bridge.Config) bridge.Bridger { } else { b.ActivityTimeout = 0 // Disable } + b.SuppressPartQuitURLs = b.GetBool("SuppressPartQuitURLs") b.FirstConnection = true return b }