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 }