bot: respond to commands given by a message suffix

This commit is contained in:
Chris Sexton 2020-04-21 11:46:29 -04:00 committed by Chris Sexton
parent d99ee28370
commit 0b553da32d
1 changed files with 10 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import (
"math/rand"
"net/http"
"reflect"
"regexp"
"strings"
"time"
@ -142,10 +143,16 @@ func (b *bot) Who(channel string) []user.User {
return users
}
var suffixRegex *regexp.Regexp
// IsCmd checks if message is a command and returns its curtailed version
func IsCmd(c *config.Config, message string) (bool, string) {
cmdcs := c.GetArray("CommandChar", []string{"!"})
botnick := strings.ToLower(c.Get("Nick", "bot"))
r := fmt.Sprintf(`(?i)\s*\W*\s*?%s\W*$`, botnick)
if suffixRegex == nil {
suffixRegex = regexp.MustCompile(r)
}
if botnick == "" {
log.Fatal().
Msgf(`You must run catbase -set nick -val <your bot nick>`)
@ -164,6 +171,9 @@ func IsCmd(c *config.Config, message string) (bool, string) {
if message[0] == ':' || message[0] == ',' {
message = message[1:]
}
} else if suffixRegex.MatchString(message) {
iscmd = true
message = suffixRegex.ReplaceAllString(message, "")
} else {
for _, cmdc := range cmdcs {
if strings.HasPrefix(lowerMessage, cmdc) && len(cmdc) > 0 {