Thumbnail

rani/matterbridge.git

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

commit 0b83662694975bafe4b57b72542ed58e6e4cc93a Author: Wim <wim@42.be> Date: Sun Oct 27 01:10:59 2019 +0000 Convert slack bold/strike to correct markdown (slack). Fixes #918 (#930) diff --git a/bridge/slack/handlers.go b/bridge/slack/handlers.go index 44a57db..829cfb6 100644 --- a/bridge/slack/handlers.go +++ b/bridge/slack/handlers.go @@ -306 +307 @@ func (b *Bslack) handleSlack() {   message.Text = b.replaceVariable(message.Text)   message.Text = b.replaceChannel(message.Text)   message.Text = b.replaceURL(message.Text) + message.Text = b.replaceb0rkedMarkDown(message.Text)   message.Text = html.UnescapeString(message.Text)     // Add the avatar diff --git a/bridge/slack/helpers.go b/bridge/slack/helpers.go index 7c012a4..b95ae87 100644 --- a/bridge/slack/helpers.go +++ b/bridge/slack/helpers.go @@ -1886 +18836 @@ func (b *Bslack) replaceURL(text string) string {   return text  }   +func (b *Bslack) replaceb0rkedMarkDown(text string) string { + // taken from https://github.com/mattermost/mattermost-server/blob/master/app/slackimport.go + // + regexReplaceAllString := []struct { + regex *regexp.Regexp + rpl string + }{ + // bold + { + regexp.MustCompile(`(^|[\s.;,])\*(\S[^*\n]+)\*`), + "$1**$2**", + }, + // strikethrough + { + regexp.MustCompile(`(^|[\s.;,])\~(\S[^~\n]+)\~`), + "$1~~$2~~", + }, + // single paragraph blockquote + // Slack converts > character to &gt; + { + regexp.MustCompile(`(?sm)^&gt;`), + ">", + }, + } + for _, rule := range regexReplaceAllString { + text = rule.regex.ReplaceAllString(text, rule.rpl) + } + return text +} +  func (b *Bslack) replaceCodeFence(text string) string {   return codeFenceRE.ReplaceAllString(text, "```")  }