summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/slackimport.go19
1 files changed, 19 insertions, 0 deletions
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)