aboutsummaryrefslogtreecommitdiff
path: root/telegram/commands.go
diff options
context:
space:
mode:
authorbodqhrohro <bodqhrohro@gmail.com>2019-12-03 03:32:53 +0300
committerbodqhrohro <bodqhrohro@gmail.com>2019-12-03 03:32:53 +0300
commit90f0490e1626f3e0cd753caa5a4aac7787cb6dfc (patch)
tree08127d54f25c1e18b5dacc2f4ca3f011f224c5d1 /telegram/commands.go
parent40b3c6a76884576dc4e3b81891c9c693c7882bab (diff)
Support commands in mapped chats
Diffstat (limited to 'telegram/commands.go')
-rw-r--r--telegram/commands.go23
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
+}