summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIris Morelle <shadowm@wesnoth.org>2021-10-16 18:59:39 -0300
committerGitHub <noreply@github.com>2021-10-16 23:59:39 +0200
commit61bab22dde8e3abd2e1cbeb57d1f7a8d28ef95f8 (patch)
treef3540819575e7e37385cf427563bbd4591e8bffb
parent6dcc23ebb6db970994cc26ad805b7d30a037ca14 (diff)
downloadmatterbridge-msglm-61bab22dde8e3abd2e1cbeb57d1f7a8d28ef95f8.tar.gz
matterbridge-msglm-61bab22dde8e3abd2e1cbeb57d1f7a8d28ef95f8.tar.bz2
matterbridge-msglm-61bab22dde8e3abd2e1cbeb57d1f7a8d28ef95f8.zip
Add UserName and RealName options for IRC (#1590)
This allows setting custom values for the IRC username/ident and real name (gecos) fields at server registration time with gIRC. Co-authored-by: Wim <wim@42.be>
-rw-r--r--bridge/config/config.go2
-rw-r--r--bridge/irc/irc.go11
-rw-r--r--matterbridge.toml.sample8
3 files changed, 19 insertions, 2 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index a6e3c546..7b7c2f2e 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -138,6 +138,7 @@ type Protocol struct {
QuoteDisable bool // telegram
QuoteFormat string // telegram
QuoteLengthLimit int // telegram
+ RealName string // IRC
RejoinDelay int // IRC
ReplaceMessages [][]string // all protocols
ReplaceNicks [][]string // all protocols
@@ -169,6 +170,7 @@ type Protocol struct {
UseFirstName bool // telegram
UseUserName bool // discord, matrix
UseInsecureURL bool // telegram
+ UserName string // IRC
VerboseJoinPart bool // IRC
WebhookBindAddress string // mattermost, slack
WebhookURL string // mattermost, slack
diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go
index e54f8030..ac8222c6 100644
--- a/bridge/irc/irc.go
+++ b/bridge/irc/irc.go
@@ -271,8 +271,11 @@ func (b *Birc) getClient() (*girc.Client, error) {
if err != nil {
return nil, err
}
+ user := b.GetString("UserName")
+ if user == "" {
+ user = b.GetString("Nick")
+ }
// fix strict user handling of girc
- user := b.GetString("Nick")
for !girc.IsValidUser(user) {
if len(user) == 1 || len(user) == 0 {
user = "matterbridge"
@@ -280,6 +283,10 @@ func (b *Birc) getClient() (*girc.Client, error) {
}
user = user[1:]
}
+ realName := b.GetString("RealName")
+ if realName == "" {
+ realName = b.GetString("Nick")
+ }
debug := ioutil.Discard
if b.GetInt("DebugLevel") == 2 {
@@ -299,7 +306,7 @@ func (b *Birc) getClient() (*girc.Client, error) {
Port: port,
Nick: b.GetString("Nick"),
User: user,
- Name: b.GetString("Nick"),
+ Name: realName,
SSL: b.GetBool("UseTLS"),
TLSConfig: &tls.Config{InsecureSkipVerify: b.GetBool("SkipTLSVerify"), ServerName: server}, //nolint:gosec
PingDelay: pingDelay,
diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample
index b6221757..f41b260d 100644
--- a/matterbridge.toml.sample
+++ b/matterbridge.toml.sample
@@ -55,6 +55,14 @@ Charset=""
#REQUIRED
Nick="matterbot"
+#Real name/gecos displayed in e.g. /WHOIS and /WHO
+#OPTIONAL (defaults to the nick)
+RealName="Matterbridge instance on IRC"
+
+#IRC username/ident preceding the hostname in hostmasks and /WHOIS
+#OPTIONAL (defaults to the nick)
+UserName="bridge"
+
#If you registered your bot with a service like Nickserv on libera.
#Also being used when UseSASL=true
#