Thumbnail

rani/matterbridge.git

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

commit 65297320641a940055529a50b1ccb30d7fc38197 Author: Wim <wim@42.be> Date: Wed Dec 12 23:50:08 2018 +0000 Refactor telegram (#649) * Decrease complexity in Send() (makes codeclimate happy) diff --git a/bridge/telegram/handlers.go b/bridge/telegram/handlers.go index 8d6c268..e87466c 100644 --- a/bridge/telegram/handlers.go +++ b/bridge/telegram/handlers.go @@ -16 +17 @@  package btelegram    import ( + "html"   "regexp"   "strconv"   "strings" @@ -2626 +26349 @@ func (b *Btelegram) getDownloadInfo(id string, suffix string, urlpart bool) (str   return text, name, url  }   +// handleDelete handles message deleting +func (b *Btelegram) handleDelete(msg *config.Message, chatid int64) (string, error) { + if msg.ID == "" { + return "", nil + } + msgid, err := strconv.Atoi(msg.ID) + if err != nil { + return "", err + } + _, err = b.c.DeleteMessage(tgbotapi.DeleteMessageConfig{ChatID: chatid, MessageID: msgid}) + return "", err +} + +// handleEdit handles message editing. +func (b *Btelegram) handleEdit(msg *config.Message, chatid int64) (string, error) { + msgid, err := strconv.Atoi(msg.ID) + if err != nil { + return "", err + } + if strings.ToLower(b.GetString("MessageFormat")) == HTMLNick { + b.Log.Debug("Using mode HTML - nick only") + msg.Text = html.EscapeString(msg.Text) + } + m := tgbotapi.NewEditMessageText(chatid, msgid, msg.Username+msg.Text) + switch b.GetString("MessageFormat") { + case HTMLFormat: + b.Log.Debug("Using mode HTML") + m.ParseMode = tgbotapi.ModeHTML + case "Markdown": + b.Log.Debug("Using mode markdown") + m.ParseMode = tgbotapi.ModeMarkdown + } + if strings.ToLower(b.GetString("MessageFormat")) == HTMLNick { + b.Log.Debug("Using mode HTML - nick only") + m.ParseMode = tgbotapi.ModeHTML + } + _, err = b.c.Send(m) + if err != nil { + return "", err + } + return "", nil +} +  // handleUploadFile handles native upload of files  func (b *Btelegram) handleUploadFile(msg *config.Message, chatid int64) string {   var c tgbotapi.Chattable diff --git a/bridge/telegram/telegram.go b/bridge/telegram/telegram.go index e16e2be..33d55bc 100644 --- a/bridge/telegram/telegram.go +++ b/bridge/telegram/telegram.go @@ -7515 +757 @@ func (b *Btelegram) Send(msg config.Message) (string, error) {     // Delete message   if msg.Event == config.EventMsgDelete { - if msg.ID == "" { - return "", nil - } - msgid, err := strconv.Atoi(msg.ID) - if err != nil { - return "", err - } - _, err = b.c.DeleteMessage(tgbotapi.DeleteMessageConfig{ChatID: chatid, MessageID: msgid}) - return "", err + return b.handleDelete(&msg, chatid)   }     // Upload a file if it exists @@ -10132 +937 @@ func (b *Btelegram) Send(msg config.Message) (string, error) {     // edit the message if we have a msg ID   if msg.ID != "" { - msgid, err := strconv.Atoi(msg.ID) - if err != nil { - return "", err - } - if strings.ToLower(b.GetString("MessageFormat")) == HTMLNick { - b.Log.Debug("Using mode HTML - nick only") - msg.Text = html.EscapeString(msg.Text) - } - m := tgbotapi.NewEditMessageText(chatid, msgid, msg.Username+msg.Text) - if b.GetString("MessageFormat") == HTMLFormat { - b.Log.Debug("Using mode HTML") - m.ParseMode = tgbotapi.ModeHTML - } - if b.GetString("MessageFormat") == "Markdown" { - b.Log.Debug("Using mode markdown") - m.ParseMode = tgbotapi.ModeMarkdown - } - if strings.ToLower(b.GetString("MessageFormat")) == HTMLNick { - b.Log.Debug("Using mode HTML - nick only") - m.ParseMode = tgbotapi.ModeHTML - } - _, err = b.c.Send(m) - if err != nil { - return "", err - } - return "", nil + return b.handleEdit(&msg, chatid)   }     // Post normal message