Thumbnail

rani/matterbridge.git

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

commit bf9d612f4a7ff0d70a6316e8919a83b0ab7273d3 Author: Wim <wim@42.be> Date: Sat Mar 02 22:38:44 2019 +0000 Add support for URL in messageEntities (telegram). Fixes #735 (#736) diff --git a/.travis.yml b/.travis.yml index 295540a..5393c96 100644 --- a/.travis.yml +++ b/.travis.yml @@ -575 +577 @@ deploy: branch: v1.8.47   file: ci/deploy.json   user: 42wim + on: + all_branches: true   key: secure: "CeXXe6JOmt7HYR81MdWLua0ltQHhDdkIeRGBFbgd7hkb1wi8eF9DgpAcQrTso8NIlHNZmSAP46uhFgsRvkuezzX0ygalZ7DCJyAyn3sAMEh+UQSHV1WGThRehTtidqRGjetzsIGSwdrJOWil+XTfbO1Z8DGzfakhSuAZka8CM4BAoe3YeP9rYK8h+84x0GHfczvsLtXZ3mWLvQuwe4pK6+ItBCUg0ae7O7ZUpWHy0xQQkkWztY/6RAzXfaG7DuGjIw+20fhx3WOXRNpHCtZ6Bc3qERCpk0s1HhlQWlrN9wDaFTBWYwlvSnNgvxxMbNXJ6RrRJ0l0bA7FUswYwyroxhzrGLdzWDg8dHaQkypocngdalfhpsnoO9j3ApJhomUFJ3UoEq5nOGRUrKn8MPi+dP0zE4kNQ3e4VNa1ufNrvfpWolMg3xh8OXuhQdD5wIM5zFAbRJLqWSCVAjPq4DDPecmvXBOlIial7oa312lN5qnBnUjvAcxszZ+FUyDHT1Grxzna4tMwxY9obPzZUzm7359AOCCwIQFVB8GLqD2nwIstcXS0zGRz+fhviPipHuBa02q5bGUZwmkvrSNab0s8Jo7pCrel2Rz3nWPKaiCfq2WjbW1CLheSMkOQrjsdUd1hhbqNWFPUjJPInTc77NAKCfm5runv5uyowRLh4NNd0sI=" diff --git a/bridge/telegram/handlers.go b/bridge/telegram/handlers.go index 93576fb..fa8f2ff 100644 --- a/bridge/telegram/handlers.go +++ b/bridge/telegram/handlers.go @@ -1446 +1449 @@ func (b *Btelegram) handleRecv(updates <-chan tgbotapi.Update) {   // quote the previous message   b.handleQuoting(&rmsg, message)   + // handle entities (adding URLs) + b.handleEntities(&rmsg, message) +   if rmsg.Text != "" || len(rmsg.Extra) > 0 {   rmsg.Text = helper.RemoveEmptyNewLines(rmsg.Text)   // channels don't have (always?) user information. see #410 @@ -3533 +35622 @@ func (b *Btelegram) handleQuote(message, quoteNick, quoteMessage string) string   format = strings.Replace(format, "{QUOTEMESSAGE}", quoteMessage, -1)   return format  } + +// handleEntities handles messageEntities +func (b *Btelegram) handleEntities(rmsg *config.Message, message *tgbotapi.Message) { + if message.Entities == nil { + return + } + // for now only do URL replacements + for _, e := range *message.Entities { + if e.Type == "text_link" { + url, err := e.ParseURL() + if err != nil { + b.Log.Errorf("entity text_link url parse failed: %s", err) + continue + } + link := rmsg.Text[e.Offset : e.Offset+e.Length] + rmsg.Text = strings.Replace(rmsg.Text, link, url.String(), 1) + } + } +}