diff options
| author | Max | 2018-02-08 16:08:18 +0100 |
|---|---|---|
| committer | Max | 2018-02-08 16:08:18 +0100 |
| commit | ae7ed42df6a55e36c82b88e7c71569951847a68c (patch) | |
| tree | ebe1c2e9393aaf6ba5ca76699a59ab20caed939b /crawler/utility.go | |
| parent | a418c52123969b01c37bafd67ec226410211cccf (diff) | |
| download | alkobote-ae7ed42df6a55e36c82b88e7c71569951847a68c.tar.gz | |
Adds missing utility functions.
Diffstat (limited to 'crawler/utility.go')
| -rw-r--r-- | crawler/utility.go | 65 |
1 files changed, 65 insertions, 0 deletions
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 +} |
