diff --git a/sites/wegmans/wegmans.go b/sites/wegmans/wegmans.go index 57ef620..e54b295 100644 --- a/sites/wegmans/wegmans.go +++ b/sites/wegmans/wegmans.go @@ -22,9 +22,11 @@ var ErrNilURL = errors.New("url is nil") var ErrInvalidURL = errors.New("invalid url") type Item struct { - ID int - Name string - Price float64 + ID int + Name string + Price float64 + UnitPrice float64 + Unit string } func deferClose(c io.Closer) { @@ -93,5 +95,23 @@ func (c Config) GetItemPrice(ctx context.Context, b extractor.Browser, u *url.UR res.Price = price } + unitPrices := doc.Select(`span[data-test="per-unit-price"]`) + + if len(unitPrices) != 0 { + unitPriceStr, _ := unitPrices[0].Text() + unitPriceStr = strings.TrimSpace(unitPriceStr) + unitPriceStr = strings.ReplaceAll(unitPriceStr, "(", "") + unitPriceStr = strings.ReplaceAll(unitPriceStr, ")", "") + unitPriceStr = strings.ReplaceAll(unitPriceStr, "$", "") + unitPriceStr = strings.ReplaceAll(unitPriceStr, ",", "") + + units := strings.Split(unitPriceStr, "/") + + if len(units) > 1 { + res.Unit = strings.TrimSpace(units[1]) + res.UnitPrice, _ = strconv.ParseFloat(units[0], 64) + } + } + return res, nil }