diff options
author | bodqhrohro <bodqhrohro@gmail.com> | 2019-12-03 03:32:53 +0300 |
---|---|---|
committer | bodqhrohro <bodqhrohro@gmail.com> | 2019-12-03 03:32:53 +0300 |
commit | 90f0490e1626f3e0cd753caa5a4aac7787cb6dfc (patch) | |
tree | 08127d54f25c1e18b5dacc2f4ca3f011f224c5d1 /telegram/commands.go | |
parent | 40b3c6a76884576dc4e3b81891c9c693c7882bab (diff) |
Support commands in mapped chats
Diffstat (limited to 'telegram/commands.go')
-rw-r--r-- | telegram/commands.go | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/telegram/commands.go b/telegram/commands.go index 61e4882..102a2c4 100644 --- a/telegram/commands.go +++ b/telegram/commands.go @@ -97,8 +97,15 @@ func helpString(ht helpType) string { return str.String() } -// ProcessTransportCommand executes commands sent directly to the component -func (c *Client) ProcessTransportCommand(cmd string, args []string) string { +func parseCommand(cmdline string) (string, []string) { + bodyFields := strings.Fields(cmdline) + return bodyFields[0][1:], bodyFields[1:] +} + +// ProcessTransportCommand executes a command sent directly to the component +// and returns a response +func (c *Client) ProcessTransportCommand(cmdline string) string { + cmd, args := parseCommand(cmdline) switch cmd { case "login", "code", "password": if cmd == "login" && c.Session.Login != "" { @@ -127,3 +134,15 @@ func (c *Client) ProcessTransportCommand(cmd string, args []string) string { return "" } + +// ProcessChatCommand executes a command sent in a mapped chat +// and returns a response and the status of command support +func (c *Client) ProcessChatCommand(cmdline string) (string, bool) { + cmd, _ := parseCommand(cmdline) + switch cmd { + case "help": + return helpString(helpTypeChat), false + } + + return "", true +} |