diff options
| author | horus | 2018-06-18 15:54:53 +0200 |
|---|---|---|
| committer | horus | 2018-06-18 15:54:53 +0200 |
| commit | 01e0cbe79f37b4be2fc82d31c71042b5ce4d699a (patch) | |
| tree | bb179b5c5c6349a69853c3781236b6056b7e7ea6 /crawler/utility.go | |
| parent | 88a2628258eb5ea79736338637ab8b5b83680c92 (diff) | |
| parent | 8114b7b17b723a5fe0fee24470e255faf587332e (diff) | |
| download | alkobote-01e0cbe79f37b4be2fc82d31c71042b5ce4d699a.tar.gz | |
Merge branch 'master' of /home/horus/app/fk_angebote
Diffstat (limited to 'crawler/utility.go')
| -rw-r--r-- | crawler/utility.go | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/crawler/utility.go b/crawler/utility.go index 5fa78c4..0650546 100644 --- a/crawler/utility.go +++ b/crawler/utility.go @@ -81,12 +81,29 @@ func detect_spirit_type(name string) string { } func extract_volume(volume string) (float32, error) { - r_liter, err := regexp.Compile(`[0-9]+([,.][0-9]+)?( )?[lL](iter)?`) + var volume_noisy string + var is_litre_instead_of_cl bool + + // difference between cl... + r_cl, err := regexp.Compile(`[0-9]+([,.][0-9]+)?( )?[cC][lL]`) if err != nil { - Fatal(err, "Extract volume regex failed") + Fatal(err, "Extract volume (centiliter) regex failed") + } + + volume_noisy = r_cl.FindString(volume) + + if volume_noisy == "" { + // ...and litre + is_litre_instead_of_cl = true + + r_liter, err := regexp.Compile(`[0-9]+([,.][0-9]+)?( )?[lL](iter)?`) + if err != nil { + Fatal(err, "Extract volume regex failed") + } + volume_noisy = r_liter.FindString(volume) } - volume_noisy := r_liter.FindString(volume) + // extract numbers r_liter2, err := regexp.Compile(`[0-9]+([,.][0-9]+)?`) if err != nil { Fatal(err, "2nd extract volume regex failed") @@ -99,6 +116,11 @@ func extract_volume(volume string) (float32, error) { return 0, err } + // converting from cl to litre + if !is_litre_instead_of_cl { + volume64 = volume64 / 100 + } + return float32(volume64), err } |
