From 678a7ceb4e4e40ab2f2c8c8529c4997376a39555 Mon Sep 17 00:00:00 2001 From: Wim Date: Fri, 27 Jan 2017 23:26:06 +0100 Subject: [PATCH] Fix channel and group messages (telegram) --- bridge/telegram/telegram.go | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/bridge/telegram/telegram.go b/bridge/telegram/telegram.go index b179dd6d..cbf8eedf 100644 --- a/bridge/telegram/telegram.go +++ b/bridge/telegram/telegram.go @@ -124,11 +124,33 @@ func (b *Btelegram) Send(msg config.Message) error { } func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) { + username := "" + text := "" + channel := "" for update := range updates { - if update.Message == nil { - continue + // handle channels + if update.ChannelPost != nil { + if update.ChannelPost.From != nil { + username = update.ChannelPost.From.FirstName + if username == "" { + username = update.ChannelPost.From.UserName + } + text = update.ChannelPost.Text + channel = strconv.FormatInt(update.ChannelPost.Chat.ID, 10) + } } - flog.Debugf("Sending message from %s on %s to gateway", update.Message.From.UserName, b.Account) - b.Remote <- config.Message{Username: update.Message.From.UserName, Text: update.Message.Text, Channel: strconv.FormatInt(update.Message.Chat.ID, 10), Account: b.Account} + // handle groups + if update.Message != nil { + if update.Message.From != nil { + username = update.Message.From.FirstName + if username == "" { + username = update.Message.From.UserName + } + text = update.Message.Text + channel = strconv.FormatInt(update.Message.Chat.ID, 10) + } + } + flog.Debugf("Sending message from %s on %s to gateway", username, b.Account) + b.Remote <- config.Message{Username: username, Text: text, Channel: channel, Account: b.Account} } }