diff options
author | George Goldberg <george@gberg.me> | 2016-11-29 19:07:07 +0000 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2016-11-29 14:07:07 -0500 |
commit | e7710cf1d270eefd4d4f42bfe2017baec496b34a (patch) | |
tree | ac1cc4f92a5570b781893f74228625eb5d1b4aa3 /api/slackimport.go | |
parent | 7f911d1632b37e0a84cb9fdfe604d0efd1b14538 (diff) | |
download | chat-e7710cf1d270eefd4d4f42bfe2017baec496b34a.tar.gz chat-e7710cf1d270eefd4d4f42bfe2017baec496b34a.tar.bz2 chat-e7710cf1d270eefd4d4f42bfe2017baec496b34a.zip |
PLT-4847 Fix formatting of links imported from Slack. (#4674)
This fixes mailto: links built from email addresses posted to Slack as
described in the ticket, but also fixes any other type of URL that has
been auto-linked in the Slack messages.
Diffstat (limited to 'api/slackimport.go')
-rw-r--r-- | api/slackimport.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/api/slackimport.go b/api/slackimport.go index 15f5f43f4..1225e7833 100644 --- a/api/slackimport.go +++ b/api/slackimport.go @@ -494,6 +494,19 @@ func SlackConvertChannelMentions(channels []SlackChannel, posts map[string][]Sla return posts } +func SlackConvertPostsMarkup(posts map[string][]SlackPost) map[string][]SlackPost { + // Convert URLs in Slack's format to Markdown format. + regex := regexp.MustCompile(`<([^|<>]+)\|([^|<>]+)>`) + + for channelName, channelPosts := range posts { + for postIdx, post := range channelPosts { + posts[channelName][postIdx].Text = regex.ReplaceAllString(post.Text, "[$2]($1)") + } + } + + return posts +} + func SlackImport(fileData multipart.File, fileSize int64, teamID string) (*model.AppError, *bytes.Buffer) { // Create log file log := bytes.NewBufferString(utils.T("api.slackimport.slack_import.log")) @@ -536,6 +549,7 @@ func SlackImport(fileData multipart.File, fileSize int64, teamID string) (*model posts = SlackConvertUserMentions(users, posts) posts = SlackConvertChannelMentions(channels, posts) + posts = SlackConvertPostsMarkup(posts) addedUsers := SlackAddUsers(teamID, users, log) botUser := SlackAddBotUser(teamID, log) |