commit bf9d612f4a7ff0d70a6316e8919a83b0ab7273d3
Author: Wim <wim@42.be>
Date: Sat Mar 02 22:38:44 2019 +0000
diff --git a/.travis.yml b/.travis.yml
index 295540a..5393c96 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -575 +577 @@ deploy:
file: ci/deploy.json
user: 42wim
+ on:
+ all_branches: true
key:
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)
+ }
+ }
+}