ref: 826f6d6a02a324876bb96b041a299710b8f89fb8
dir: /commands.go/
package main
import (
"strings"
"github.com/google/shlex"
)
var commands = []string{"examine", "reply", "like", "thread", "open", "preview", "download", "dm", "rt", "parent", "children", "rm", "mark", "unmark", "account", "vim", "import", "pause", "resume", "url"}
func processInput(input string) (command string, arguments string) {
if input == "" {
command = ""
arguments = ""
return
}
if input[0] != '/' {
command = ""
arguments = input
return
}
inputcommand, _, hasargument := strings.Cut(input[1:], " ")
if !hasargument {
inputcommand = input[1:]
}
for _, choice := range commands {
if strings.HasPrefix(choice, inputcommand) {
command = choice
_, arguments, _ = strings.Cut(input, " ")
break
}
}
return
}
func extractInputParameters(input string) (remainder string, parameters [][]string) {
args, _ := shlex.Split(input)
for i, arg := range args {
if strings.HasPrefix(arg, "?") {
key, val, _ := strings.Cut(arg, "=")
key = key[1:]
parameters = append(parameters, []string{key, val})
} else {
remainder = strings.Join(args[i:], " ")
break
}
}
return
}