From 768fb791c52a24b81f5acb10e0bb90e697ebc552 Mon Sep 17 00:00:00 2001 From: Joseph Mansy <36427684+yousefmansy1@users.noreply.github.com> Date: Thu, 9 Mar 2023 13:02:31 -0800 Subject: [PATCH] Use AuthorSignature as a fallback username (telegram) (#1979) This comes in handy for annoucement type channels where neither the SenderChat or From structs contain name information. Also Tweak username logic as when using a full name the username field can be " " instead of "". --- bridge/telegram/handlers.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bridge/telegram/handlers.go b/bridge/telegram/handlers.go index b9cc7e6f..5ffb1eca 100644 --- a/bridge/telegram/handlers.go +++ b/bridge/telegram/handlers.go @@ -128,7 +128,9 @@ func (b *Btelegram) handleUsername(rmsg *config.Message, message *tgbotapi.Messa rmsg.Username = message.From.FirstName } if b.GetBool("UseFullName") { - rmsg.Username = message.From.FirstName + " " + message.From.LastName + if message.From.FirstName != "" && message.From.LastName != "" { + rmsg.Username = message.From.FirstName + " " + message.From.LastName + } } if rmsg.Username == "" { rmsg.Username = message.From.UserName @@ -148,7 +150,9 @@ func (b *Btelegram) handleUsername(rmsg *config.Message, message *tgbotapi.Messa rmsg.Username = message.SenderChat.FirstName } if b.GetBool("UseFullName") { - rmsg.Username = message.SenderChat.FirstName + " " + message.SenderChat.LastName + if message.SenderChat.FirstName != "" && message.SenderChat.LastName != "" { + rmsg.Username = message.SenderChat.FirstName + " " + message.SenderChat.LastName + } } if rmsg.Username == "" || rmsg.Username == "Channel_Bot" { @@ -164,6 +168,11 @@ func (b *Btelegram) handleUsername(rmsg *config.Message, message *tgbotapi.Messa } } + // Fallback on author signature (used in "channel" type of chat) + if rmsg.Username == "" && message.AuthorSignature != "" { + rmsg.Username = message.AuthorSignature + } + // if we really didn't find a username, set it to unknown if rmsg.Username == "" { rmsg.Username = unknownUser