diff options
Diffstat (limited to 'api/import.go')
-rw-r--r-- | api/import.go | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/api/import.go b/api/import.go index 570444464..63dfb033d 100644 --- a/api/import.go +++ b/api/import.go @@ -7,6 +7,7 @@ import ( "bytes" "io" "regexp" + "unicode/utf8" l4g "github.com/alecthomas/log4go" "github.com/mattermost/platform/model" @@ -19,10 +20,24 @@ import ( // func ImportPost(post *model.Post) { - post.Hashtags, _ = model.ParseHashtags(post.Message) + for messageRuneCount := utf8.RuneCountInString(post.Message); messageRuneCount > 0; messageRuneCount = utf8.RuneCountInString(post.Message) { + var remainder string + if messageRuneCount > model.POST_MESSAGE_MAX_RUNES { + remainder = string(([]rune(post.Message))[model.POST_MESSAGE_MAX_RUNES:]) + post.Message = truncateRunes(post.Message, model.POST_MESSAGE_MAX_RUNES) + } else { + remainder = "" + } + + post.Hashtags, _ = model.ParseHashtags(post.Message) + + if result := <-Srv.Store.Post().Save(post); result.Err != nil { + l4g.Debug(utils.T("api.import.import_post.saving.debug"), post.UserId, post.Message) + } - if result := <-Srv.Store.Post().Save(post); result.Err != nil { - l4g.Debug(utils.T("api.import.import_post.saving.debug"), post.UserId, post.Message) + post.Id = "" + post.CreateAt++ + post.Message = remainder } } |