summaryrefslogtreecommitdiff
path: root/crawler/shop_spirituosenwolf.de.go
diff options
context:
space:
mode:
Diffstat (limited to 'crawler/shop_spirituosenwolf.de.go')
-rw-r--r--crawler/shop_spirituosenwolf.de.go68
1 files changed, 22 insertions, 46 deletions
diff --git a/crawler/shop_spirituosenwolf.de.go b/crawler/shop_spirituosenwolf.de.go
index 3fc04b1..f4f8e70 100644
--- a/crawler/shop_spirituosenwolf.de.go
+++ b/crawler/shop_spirituosenwolf.de.go
@@ -78,7 +78,7 @@ func (app *App) ScrapeSpirituosenWolf(shop Shop) []Angebot {
srcset := strings.Split(_srcset, ",")
for _, image_url := range srcset {
if strings.Contains(image_url, "@2x") {
- offer.Image_url = image_url
+ offer.Image_url = strings.TrimSpace(strings.TrimSuffix(image_url, "2x"))
break
}
}
@@ -91,15 +91,15 @@ func (app *App) ScrapeSpirituosenWolf(shop Shop) []Angebot {
// Abv
offer.Abv, err = extract_abv(strings.TrimSpace(s.Text()))
if err != nil {
- log.Println("Wolf: Extracting Abv failed")
+ offer.Debug("Wolf: Extracting Abv failed")
}
})
doc.Find(".sw_frontend_listing_box_article_priceinfo_qty").Each(func(i int, s *goquery.Selection) {
// Volume
- offer.Volume, err = extract_volume(strings.TrimSpace(strings.TrimPrefix("Inhalt:", strings.TrimSpace(s.Text()))))
+ offer.Volume, err = extract_volume(strings.TrimSpace(strings.TrimPrefix(strings.TrimSpace(s.Text()), "Inhalt:")))
if err != nil {
- log.Println("Wolf: Extracting volume failed")
+ offer.Debug("Wolf: Extracting volume failed")
}
})
@@ -107,7 +107,7 @@ func (app *App) ScrapeSpirituosenWolf(shop Shop) []Angebot {
// Original_price
offer.Original_price, err = convert_price(strings.TrimSpace(s.Text()))
if err != nil {
- log.Println("Wolf: Converting original_price failed")
+ offer.Debug("Wolf: Converting original_price failed")
}
})
@@ -115,15 +115,16 @@ func (app *App) ScrapeSpirituosenWolf(shop Shop) []Angebot {
// Discounted_price
offer.Discounted_price, err = convert_price(strings.TrimSpace(s.Text()))
if err != nil {
- log.Println("Wolf: Converting Discounted_price failed")
+ offer.Debug("Wolf: Converting Discounted_price failed")
}
})
doc.Find(".sw_frontend_listing_box_article_priceinfo_baseprice").Each(func(i int, s *goquery.Selection) {
// Base_price
+
offer.Base_price, err = sanitize_base_price(strings.TrimSpace(s.Text()))
if err != nil {
- log.Println("Wolf: Sanitizing Base_price failed")
+ offer.Debug("Wolf: Sanitizing Base_price failed")
}
})
@@ -134,6 +135,10 @@ func (app *App) ScrapeSpirituosenWolf(shop Shop) []Angebot {
offer.Spirit_type = WolfGetSpiritTypeFromUrl(offer.Url)
}
+ if offer.Volume == 1 {
+ offer.Base_price = offer.Discounted_price
+ }
+
Offers = append(Offers, offer)
})
@@ -142,11 +147,10 @@ func (app *App) ScrapeSpirituosenWolf(shop Shop) []Angebot {
func WolfGetSpiritTypeFromUrl(url string) string {
- url = strings.TrimPrefix("https://www.spirituosen-wolf.de/", url)
+ url = strings.TrimPrefix(url, "https://www.spirituosen-wolf.de/")
subfolders := strings.Split(url, "/")
for index, folder := range subfolders {
- // match Gin, Whisky, R
switch folder {
case "whisk-e-y":
return "Whisky"
@@ -157,67 +161,39 @@ func WolfGetSpiritTypeFromUrl(url string) string {
}
return "Gin"
- case "likoer":
- return "Likör"
-
case "rum-cachaca", "rum-co":
return "Rum"
+ case "wodka-vodka":
+ return "Wodka"
+
case "champagner-co":
switch subfolders[1] {
case "champagner":
return "Champagner"
- case "Cremant":
- return "Cremant"
default:
return "Sekt"
}
- case "wodka-vodka":
- return "Wodka"
-
- case "weine":
- return "Wein"
-
case "grappa-korn-braende":
switch subfolders[index+1] {
case "grappa":
return "Grappa"
case "korn":
- return "Korn"
+ return "Wodka"
default:
return "Verschiedenes"
}
- case "brandy-cognac-co":
- switch subfolders[index+1] {
- case "cognac":
- return "Cognac"
- case "brandy":
- return "Brandy"
- case "calvados":
- return "Calvados"
- case "armagnac":
- return "Armagnac"
- }
-
- case "cachaca":
- return "Cachaca"
-
- case "Absinth":
- return "Absinth"
-
- case "mezcal":
- return "Mezcal"
-
- case "Tequila":
- return "Tequila"
-
default:
- return "Verschiedenes"
+ detected := detect_spirit_type(folder)
+ if "Verschiedenes" != detected {
+ return detected
+ }
}
}
+
return "Verschiedenes"
}