diff options
author | YuviPanda <yuvipanda@gmail.com> | 2015-11-01 17:42:10 -0800 |
---|---|---|
committer | YuviPanda <yuvipanda@gmail.com> | 2015-11-01 17:49:43 -0800 |
commit | 47fcb79e998040ca83ba9a08cbe87bbf376db114 (patch) | |
tree | a4acb75fb064ba380dbc92cf6443068115017b00 | |
parent | dfb48568a3ae9eb018c3826288b760cd91b1ac77 (diff) | |
download | chat-47fcb79e998040ca83ba9a08cbe87bbf376db114.tar.gz chat-47fcb79e998040ca83ba9a08cbe87bbf376db114.tar.bz2 chat-47fcb79e998040ca83ba9a08cbe87bbf376db114.zip |
PLT-394: Add a /me command
- Just italicizes the message to mark it as 'action'
- Same behavior as slack
- Is super useful for people moving from IRC, since /me is often
burnt into muscle memory
-rw-r--r-- | api/command.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/api/command.go b/api/command.go index b2a4f4a0b..7b3fb9236 100644 --- a/api/command.go +++ b/api/command.go @@ -24,6 +24,7 @@ var ( "loadTestCommand": "/loadtest", "echoCommand": "/echo", "shrugCommand": "/shrug", + "meCommand": "/me", } commands = []commandHandler{ logoutCommand, @@ -31,6 +32,7 @@ var ( loadTestCommand, echoCommand, shrugCommand, + meCommand, } commandNotImplementedErr = model.NewAppError("checkCommand", "Command not implemented", "") ) @@ -194,6 +196,34 @@ func echoCommand(c *Context, command *model.Command) bool { return false } +func meCommand(c *Context, command *model.Command) bool { + cmd := cmds["meCommand"] + + if !command.Suggest && strings.Index(command.Command, cmd) == 0 { + message := "" + + parameters := strings.SplitN(command.Command, " ", 2) + if len(parameters) > 1 { + message += "*" + parameters[1] + "*" + } + + post := &model.Post{} + post.Message = message + post.ChannelId = command.ChannelId + if _, err := CreatePost(c, post, false); err != nil { + l4g.Error("Unable to create /me post post, err=%v", err) + return false + } + command.Response = model.RESP_EXECUTED + return true + + } else if strings.Index(cmd, command.Command) == 0 { + command.AddSuggestion(&model.SuggestCommand{Suggestion: cmd, Description: "Do an action, /me [message]"}) + } + + return false +} + func shrugCommand(c *Context, command *model.Command) bool { cmd := cmds["shrugCommand"] |