package main import ( "log" "regexp" "strconv" "strings" ) func detect_spirit_type(name string) string { if strings.Contains(name, "Gin") { return "Gin" } if strings.Contains(name, "Rum") { return "Rum" } if strings.Contains(name, "Vodka") { return "Wodka" } if strings.Contains(name, "Wodka") { return "Wodka" } if strings.Contains(name, "Whisky") { return "Whisky" } if strings.Contains(name, "Whiskey") { return "Whisky" } return "Anderes" } func extract_volume(volume string) (float32, error) { r_liter, err := regexp.Compile(`[0-9]+([,.][0-9]+)?( )?[lL](iter)?`) if err != nil { log.Fatal(err) } volume_noisy := r_liter.FindString(volume) r_liter2, err := regexp.Compile(`[0-9]+([,.][0-9]+)?`) if err != nil { log.Fatal(err) } volume_noisy = r_liter2.FindString(volume_noisy) volume_noisy = strings.Replace(volume_noisy, ",", ".", 1) volume64, err := strconv.ParseFloat(volume_noisy, 32) if err != nil { return 0, err } return float32(volume64), err } func extract_abv(abv_noisy string) (float32, error) { if strings.Contains(abv_noisy, "%") { abv_noisy = strings.Replace(abv_noisy, "%", "", 1) } abv_noisy = strings.Replace(abv_noisy, ",", ".", 1) abv_noisy = strings.TrimSpace(abv_noisy) abv64, err := strconv.ParseFloat(abv_noisy, 32) if err != nil { return 0, err } return float32(abv64), nil }