From fc30b1bacc4ceb6dd978c5838609371fa6abd801 Mon Sep 17 00:00:00 2001 From: Humorhenker <36549980+Humorhenker@users.noreply.github.com> Date: Thu, 30 Jan 2020 00:02:33 +0100 Subject: [PATCH] Add QuoteLengthLimit option (telegram) fixes #963 (#985) * QuoteLengthLimit option added to limit max. quoted message length if QuoteLengthLimit = 0 the whole message will be quoted --- bridge/config/config.go | 1 + bridge/telegram/handlers.go | 8 ++++++++ matterbridge.toml.sample | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/bridge/config/config.go b/bridge/config/config.go index 5da535dc..105d568f 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -116,6 +116,7 @@ type Protocol struct { Protocol string // all protocols QuoteDisable bool // telegram QuoteFormat string // telegram + QuoteLengthLimit int // telegram RejoinDelay int // IRC ReplaceMessages [][]string // all protocols ReplaceNicks [][]string // all protocols diff --git a/bridge/telegram/handlers.go b/bridge/telegram/handlers.go index bbe12437..a74a3f8a 100644 --- a/bridge/telegram/handlers.go +++ b/bridge/telegram/handlers.go @@ -357,6 +357,14 @@ func (b *Btelegram) handleQuote(message, quoteNick, quoteMessage string) string if format == "" { format = "{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})" } + quoteMessagelength := len(quoteMessage) + if b.GetInt("QuoteLengthLimit") != 0 && quoteMessagelength >= b.GetInt("QuoteLengthLimit") { + runes := []rune(quoteMessage) + quoteMessage = string(runes[0:b.GetInt("QuoteLengthLimit")]) + if quoteMessagelength > b.GetInt("QuoteLengthLimit") { + quoteMessage += "..." + } + } format = strings.Replace(format, "{MESSAGE}", message, -1) format = strings.Replace(format, "{QUOTENICK}", quoteNick, -1) format = strings.Replace(format, "{QUOTEMESSAGE}", quoteMessage, -1) diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index 61c86176..af3c5dfb 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -853,6 +853,10 @@ UseInsecureURL=false #OPTIONAL (default false) QuoteDisable=false +#Set the max. quoted length if 0 the whole message will be quoted +#OPTIONAL (default 0) +QuoteLengthLimit=0 + #Format quoted/reply messages #OPTIONAL (default "{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})") QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"