Thumbnail

rani/matterbridge.git

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

commit 8f91a6421a09cccbcb2acab4a895f535c309f021 Author: Jan Martin Reckel <57252256+reckel-jm@users.noreply.github.com> Date: Sat Mar 12 00:19:02 2022 +0000 Fix Telegram Problem (unforwarded formatting and skipping of linebreaks) (#1749) * Change bridge/telegram/handlers.go Comment out the removing of empty lines add support for bold, italic and striked telegram messages * Implement Telegram MessageEntities correctly * Apply gofmt Co-authored-by: Jan Martin Reckel <jan-martin.reckel@s2017.tu-chemnitz.de> Co-authored-by: Wim <wim@42.be> diff --git a/bridge/telegram/handlers.go b/bridge/telegram/handlers.go index c5ed8c4..a27a673 100644 --- a/bridge/telegram/handlers.go +++ b/bridge/telegram/handlers.go @@ -2017 +2018 @@ func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {   b.handleEntities(&rmsg, message)     if rmsg.Text != "" || len(rmsg.Extra) > 0 { - rmsg.Text = helper.RemoveEmptyNewLines(rmsg.Text) + // Comment the next line out due to avoid removing empty lines in Telegram + // rmsg.Text = helper.RemoveEmptyNewLines(rmsg.Text)   // channels don't have (always?) user information. see #410   if message.From != nil {   rmsg.Avatar = helper.GetAvatar(b.avatarMap, strconv.FormatInt(message.From.ID, 10), b.General) @@ -5095 +51021 @@ func (b *Btelegram) handleEntities(rmsg *config.Message, message *tgbotapi.Messa   rmsg.Text = rmsg.Text[:offset] + "```\n" + rmsg.Text[offset:offset+e.Length] + "\n```" + rmsg.Text[offset+e.Length:]   indexMovedBy += 8   } + + if e.Type == "bold" { + offset := e.Offset + indexMovedBy + rmsg.Text = rmsg.Text[:offset] + "*" + rmsg.Text[offset:offset+e.Length] + "*" + rmsg.Text[offset+e.Length:] + indexMovedBy += 2 + } + if e.Type == "italic" { + offset := e.Offset + indexMovedBy + rmsg.Text = rmsg.Text[:offset] + "_" + rmsg.Text[offset:offset+e.Length] + "_" + rmsg.Text[offset+e.Length:] + indexMovedBy += 2 + } + if e.Type == "strike" { + offset := e.Offset + indexMovedBy + rmsg.Text = rmsg.Text[:offset] + "~" + rmsg.Text[offset:offset+e.Length] + "~" + rmsg.Text[offset+e.Length:] + indexMovedBy += 2 + }   }  }