mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-24 12:12:39 +01:00
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>
This commit is contained in:
parent
0dbbd0414c
commit
ccb5b1d075
@ -201,7 +201,8 @@ func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {
|
|||||||
b.handleEntities(&rmsg, message)
|
b.handleEntities(&rmsg, message)
|
||||||
|
|
||||||
if rmsg.Text != "" || len(rmsg.Extra) > 0 {
|
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
|
// channels don't have (always?) user information. see #410
|
||||||
if message.From != nil {
|
if message.From != nil {
|
||||||
rmsg.Avatar = helper.GetAvatar(b.avatarMap, strconv.FormatInt(message.From.ID, 10), b.General)
|
rmsg.Avatar = helper.GetAvatar(b.avatarMap, strconv.FormatInt(message.From.ID, 10), b.General)
|
||||||
@ -509,5 +510,21 @@ 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:]
|
rmsg.Text = rmsg.Text[:offset] + "```\n" + rmsg.Text[offset:offset+e.Length] + "\n```" + rmsg.Text[offset+e.Length:]
|
||||||
indexMovedBy += 8
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user