diff options
author | Yuval Langer <yuval.langer@gmail.com> | 2018-05-12 00:02:43 +0300 |
---|---|---|
committer | Wim <wim@42.be> | 2018-05-11 23:02:43 +0200 |
commit | f0738a93c3d42bec580d69f8a0df6306e3f357c2 (patch) | |
tree | 15564159af97998413a45a43149adfdc6faf46ef | |
parent | 75381c2c6e32b7a7b36c4b6a662feae2b1b0fb5a (diff) | |
download | matterbridge-msglm-f0738a93c3d42bec580d69f8a0df6306e3f357c2.tar.gz matterbridge-msglm-f0738a93c3d42bec580d69f8a0df6306e3f357c2.tar.bz2 matterbridge-msglm-f0738a93c3d42bec580d69f8a0df6306e3f357c2.zip |
[WIP] Colorize username sent to IRC using its crc32 IEEE checksum (#423)
* Colorize username sent to IRC using its crc32 IEEE checksum
* Add `ColorNicks` configuration variable
* Add `ColorNicks` setting
-rw-r--r-- | bridge/config/config.go | 1 | ||||
-rw-r--r-- | bridge/irc/irc.go | 10 | ||||
-rw-r--r-- | matterbridge.toml.sample | 4 |
3 files changed, 13 insertions, 2 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go index 0b92783e..1627adc2 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -62,6 +62,7 @@ type Protocol struct { BindAddress string // mattermost, slack // DEPRECATED Buffer int // api Charset string // irc + ColorNicks bool // only irc for now Debug bool // general DebugLevel int // only for irc now EditSuffix string // mattermost, slack, discord, telegram, gitter diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go index 1e26b770..cb0a6fe7 100644 --- a/bridge/irc/irc.go +++ b/bridge/irc/irc.go @@ -12,6 +12,7 @@ import ( "github.com/paulrosania/go-charset/charset" _ "github.com/paulrosania/go-charset/data" "github.com/saintfish/chardet" + "hash/crc32" "io" "io/ioutil" "net" @@ -246,11 +247,16 @@ func (b *Birc) doSend() { throttle := time.NewTicker(rate) for msg := range b.Local { <-throttle.C + username := msg.Username + if b.GetBool("Colornicks") { + checksum := crc32.ChecksumIEEE([]byte(msg.Username)) + username = fmt.Sprintf("\x03%d%s\x03", checksum%0x10, msg.Username) + } if msg.Event == config.EVENT_USER_ACTION { - b.i.Cmd.Action(msg.Channel, msg.Username+msg.Text) + b.i.Cmd.Action(msg.Channel, username+msg.Text) } else { b.Log.Debugf("Sending to channel %s", msg.Channel) - b.i.Cmd.Message(msg.Channel, msg.Username+msg.Text) + b.i.Cmd.Message(msg.Channel, username+msg.Text) } } } diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index e2558cbb..bf9e147b 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -92,6 +92,10 @@ MessageSplit=false #OPTIONAL (default 0) RejoinDelay=0 +#ColorNicks will show each nickname in a different color. +#Only works in IRC right now. +ColorNicks=false + #Nicks you want to ignore. #Messages from those users will not be sent to other bridges. #OPTIONAL |