From 33eda94db33417c839499b1b3e0330a4fdd1de19 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Mon, 19 Sep 2016 13:22:08 +0100 Subject: PLT-1764 #channels => !channels on Slack import. (#4028) --- api/slackimport.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'api/slackimport.go') diff --git a/api/slackimport.go b/api/slackimport.go index 7790a21e3..cb6877616 100644 --- a/api/slackimport.go +++ b/api/slackimport.go @@ -285,6 +285,24 @@ func SlackConvertUserMentions(users []SlackUser, posts map[string][]SlackPost) m return posts } +func SlackConvertChannelMentions(channels []SlackChannel, posts map[string][]SlackPost) map[string][]SlackPost { + var channelPatterns = make(map[string]string, len(channels)) + for _, channel := range channels { + channelPatterns["!"+channel.Name] = "<#" + channel.Id + ">" + } + + for channelName, channelPosts := range posts { + for postIdx, post := range channelPosts { + for channelReplace, channelMatch := range channelPatterns { + post.Text = strings.Replace(post.Text, channelMatch, channelReplace, -1) + posts[channelName][postIdx] = post + } + } + } + + 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")) @@ -324,6 +342,7 @@ func SlackImport(fileData multipart.File, fileSize int64, teamID string) (*model } posts = SlackConvertUserMentions(users, posts) + posts = SlackConvertChannelMentions(channels, posts) addedUsers := SlackAddUsers(teamID, users, log) SlackAddChannels(teamID, channels, posts, addedUsers, log) -- cgit v1.2.3-1-g7c22