Thumbnail

rani/matterbridge.git

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

commit 1798bcd4705f38b6c8bbb623e8a5449b6dfc1efa Author: Dan Walmsley <dan@walms.co.uk> Date: Tue Dec 07 20:26:28 2021 +0000 Add support for code blocks in telegram (#1650) * handle code blocks in telegram. * support multi-line code blocks. * remove import. * handle code blocks in middle of normal text. * support multiple code blocks in same message. diff --git a/bridge/telegram/handlers.go b/bridge/telegram/handlers.go index 84881f7..7f40ddc 100644 --- a/bridge/telegram/handlers.go +++ b/bridge/telegram/handlers.go @@ -4356 +4359 @@ func (b *Btelegram) handleEntities(rmsg *config.Message, message *tgbotapi.Messa   if message.Entities == nil {   return   } + + var indexMovedBy = 0 +   // for now only do URL replacements   for _, e := range *message.Entities {   if e.Type == "text_link" { @@ -4515 +45417 @@ func (b *Btelegram) handleEntities(rmsg *config.Message, message *tgbotapi.Messa   link := utf16.Decode(utfEncodedString[e.Offset : e.Offset+e.Length])   rmsg.Text = strings.Replace(rmsg.Text, string(link), url.String(), 1)   } + + if e.Type == "code" { + var 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 == "pre" { + var offset = e.Offset + indexMovedBy + rmsg.Text = rmsg.Text[:offset] + "```\n" + rmsg.Text[offset:offset + e.Length] + "\n```" + rmsg.Text[offset + e.Length :] + indexMovedBy += 8 + }   }  }