From ae7ed42df6a55e36c82b88e7c71569951847a68c Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 8 Feb 2018 16:08:18 +0100 Subject: Adds missing utility functions. --- crawler/utility.go | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 crawler/utility.go (limited to 'crawler/utility.go') diff --git a/crawler/utility.go b/crawler/utility.go new file mode 100644 index 0000000..a794c4b --- /dev/null +++ b/crawler/utility.go @@ -0,0 +1,65 @@ +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 +} -- cgit v1.2.3