26 lines
621 B
Go
26 lines
621 B
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// ErrInvalidArgs returned when a command's arguments are invalid
|
|
var ErrInvalidArgs = fmt.Errorf("invalid arguments")
|
|
|
|
// ParseSend parses "!pm send" command, returns to, subject, body, err
|
|
func ParseSend(commandSlice []string) (string, string, string, error) {
|
|
if len(commandSlice) < 3 {
|
|
return "", "", "", ErrInvalidArgs
|
|
}
|
|
|
|
message := strings.Join(commandSlice, " ")
|
|
lines := strings.Split(message, "\n")
|
|
commandSlice = strings.Split(lines[0], " ")
|
|
to := commandSlice[1]
|
|
subject := lines[1]
|
|
body := strings.Join(lines[2:], "\n")
|
|
|
|
return to, subject, body, nil
|
|
}
|