Go-based webhook generic handler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

35 lines
1.2 KiB

package telegrampackage
import "strings"
func ParseTelegramBotCommand(fullCmd string) []string {
var results []string
currentInsideQuote := false
splitted := strings.Split(fullCmd, " ")
for _, currSplit := range splitted {
if !currentInsideQuote {
if strings.HasPrefix(currSplit, "\"") {
if len(currSplit) >= 2 && !strings.HasSuffix(currSplit, "\\\"") && strings.HasSuffix(currSplit, "\"") {
currSplit = strings.ReplaceAll(currSplit, "\\\"", "\"")
results = append(results, currSplit[1:len(currSplit)-1])
} else {
currentInsideQuote = true
currSplit = strings.ReplaceAll(currSplit, "\\\"", "\"")
results = append(results, currSplit[1:])
}
} else {
results = append(results, currSplit)
}
} else {
if !strings.HasSuffix(currSplit, "\\\"") && strings.HasSuffix(currSplit, "\"") {
currentInsideQuote = false
currSplit = strings.ReplaceAll(currSplit, "\\\"", "\"")
results[len(results)-1] = results[len(results)-1] + " " + currSplit[:len(currSplit)-1]
} else {
currSplit = strings.ReplaceAll(currSplit, "\\\"", "\"")
results[len(results)-1] = results[len(results)-1] + " " + currSplit
}
}
}
return results
}