summaryrefslogtreecommitdiff
path: root/crawler/utility.go
diff options
context:
space:
mode:
authorMax2018-02-08 16:08:18 +0100
committerMax2018-02-08 16:08:18 +0100
commitae7ed42df6a55e36c82b88e7c71569951847a68c (patch)
treeebe1c2e9393aaf6ba5ca76699a59ab20caed939b /crawler/utility.go
parenta418c52123969b01c37bafd67ec226410211cccf (diff)
downloadalkobote-ae7ed42df6a55e36c82b88e7c71569951847a68c.tar.gz
Adds missing utility functions.
Diffstat (limited to 'crawler/utility.go')
-rw-r--r--crawler/utility.go65
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
+}