From f30bd2a4407deea9cc47bed29675c89ab61f7a02 Mon Sep 17 00:00:00 2001 From: David Haukeness Date: Tue, 31 Mar 2020 18:30:53 +0000 Subject: [PATCH] added hasCommandPrefix --- utils.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/utils.go b/utils.go index f3db1ec..c4f7771 100644 --- a/utils.go +++ b/utils.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "strings" "samhofi.us/x/keybase/types/chat1" ) @@ -28,3 +29,21 @@ func getFeedbackExtendedDescription(bc botConfig) *chat1.UserBotExtendedDescript MobileBody: "Please note: Your feedback will be public!", } } + +// hasCommandPrefix determines if the command matches either command or name variant +func hasCommandPrefix(s string, baseCommand string, botName string, subCommands string) bool { + // if this is actually a command + if strings.HasPrefix(s, "!") || strings.HasPrefix(s, "@") { + // generate the two possible command variants + botCommand := fmt.Sprintf("%s %s", baseCommand, subCommands) + nameCommand := fmt.Sprintf("%s %s", botName, subCommands) + // then remove the ! or @ from the string + s = strings.Replace(s, "!", "", 1) + s = strings.Replace(s, "@", "", 1) + // then check if either command variant is a match to the subCommands sent + if strings.HasPrefix(s, botCommand) || strings.HasPrefix(s, nameCommand) { + return true + } + } + return false +}