summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQais Patankar <qaisjp@gmail.com>2019-01-04 19:32:58 +0000
committerWim <wim@42.be>2019-01-04 20:32:58 +0100
commit8522d8f29cf1625a0d31dab15428600133fe0dba (patch)
treee49ce56c7942a946c7dbec92a61e77eb2edb1cce
parentbab385c342d62c8116653a7d091b88a99a9cb381 (diff)
downloadmatterbridge-msglm-8522d8f29cf1625a0d31dab15428600133fe0dba.tar.gz
matterbridge-msglm-8522d8f29cf1625a0d31dab15428600133fe0dba.tar.bz2
matterbridge-msglm-8522d8f29cf1625a0d31dab15428600133fe0dba.zip
Fix #668 strip lang in code fences sent to Slack (#673)
-rw-r--r--bridge/slack/helpers.go5
-rw-r--r--bridge/slack/slack.go2
2 files changed, 7 insertions, 0 deletions
diff --git a/bridge/slack/helpers.go b/bridge/slack/helpers.go
index fb7a25d5..4e6e5652 100644
--- a/bridge/slack/helpers.go
+++ b/bridge/slack/helpers.go
@@ -291,6 +291,7 @@ var (
channelRE = regexp.MustCompile(`<#[a-zA-Z0-9]+\|(.+?)>`)
variableRE = regexp.MustCompile(`<!((?:subteam\^)?[a-zA-Z0-9]+)(?:\|@?(.+?))?>`)
urlRE = regexp.MustCompile(`<(.*?)(\|.*?)?>`)
+ codeFenceRE = regexp.MustCompile(`(?m)^` + "```" + `\w+$`)
topicOrPurposeRE = regexp.MustCompile(`(?s)(@.+) (cleared|set)(?: the)? channel (topic|purpose)(?:: (.*))?`)
)
@@ -353,6 +354,10 @@ func (b *Bslack) replaceURL(text string) string {
return text
}
+func (b *Bslack) replaceCodeFence(text string) string {
+ return codeFenceRE.ReplaceAllString(text, "```")
+}
+
func (b *Bslack) handleRateLimit(err error) error {
rateLimit, ok := err.(*slack.RateLimitedError)
if !ok {
diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go
index d8dfc62f..b9430278 100644
--- a/bridge/slack/slack.go
+++ b/bridge/slack/slack.go
@@ -188,6 +188,8 @@ func (b *Bslack) Send(msg config.Message) (string, error) {
b.Log.Debugf("=> Receiving %#v", msg)
}
+ msg.Text = b.replaceCodeFence(msg.Text)
+
// Make a action /me of the message
if msg.Event == config.EventUserAction {
msg.Text = "_" + msg.Text + "_"