summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorYuviPanda <yuvipanda@gmail.com>2015-11-01 17:42:10 -0800
committerYuviPanda <yuvipanda@gmail.com>2015-11-01 17:49:43 -0800
commit47fcb79e998040ca83ba9a08cbe87bbf376db114 (patch)
treea4acb75fb064ba380dbc92cf6443068115017b00 /api
parentdfb48568a3ae9eb018c3826288b760cd91b1ac77 (diff)
downloadchat-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
Diffstat (limited to 'api')
-rw-r--r--api/command.go30
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"]