mirror of
https://github.com/dubadub/cookbook.git
synced 2025-10-29 11:26:54 +00:00
feat: added db entries
This commit is contained in:
parent
12af78ae11
commit
d555bb85e3
4
.shopping_list.txt
Normal file
4
.shopping_list.txt
Normal file
@ -0,0 +1,4 @@
|
||||
# Shopping List
|
||||
# Format: path<TAB>name<TAB>scale
|
||||
|
||||
Breakfast/Mexican Style Burrito Mexican Style Burrito 3
|
||||
@ -2,7 +2,7 @@
|
||||
time required: 90 minutes
|
||||
---
|
||||
|
||||
===== Nut roll ======
|
||||
===== Dough ======
|
||||
|
||||
Add @sugar{1%tbsp} and @yeast{15%g} to the warm @milk{250%ml}.
|
||||
Mix well until the yeast is fully dissolved. ss
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
---
|
||||
quick: true
|
||||
tags: [quick]
|
||||
servings: 4
|
||||
prep time: 10 minutes
|
||||
cook time: 15 minutes
|
||||
my tag: hehe
|
||||
---
|
||||
|
||||
Crack the @eggs{3} into a blender, then add the @plain flour{125%g}, @milk{250%ml} and @sea salt{1%pinch}, and blitz until smooth.
|
||||
Crack the @eggs{3} into a blender, then add the @plain flour{125%g}, @milk{250%ml} and @sea salt{1%pinch}, and blitz until smooth. Add more @milk{1%cup}
|
||||
|
||||
Pour into a #bowl and leave to stand for ~{20%minutes}.
|
||||
|
||||
|
||||
@ -2,14 +2,14 @@
|
||||
servings: 2
|
||||
complexity: easy
|
||||
tags:
|
||||
- breakfast
|
||||
- breakfast
|
||||
---
|
||||
|
||||
Coarsely grate the @cheddar cheese{25%g}(grated). Cut @lime{} in half and one half into 2 wedges.
|
||||
|
||||
> my grand ba did that
|
||||
|
||||
Loosely wrap the @tortillas{2%large} in tin foil then pop in the hot oven to warm through, along with two plates. Finely chop the @red chilli{0.5} and put it aside for later.
|
||||
Loosely wrap the @tortillas{2%large} in tin foil then pop in the hot oven to warm through, along with two plates.
|
||||
|
||||
Make your table look respectable - get the cutlery, salt and pepper and drinks laid out nicely.
|
||||
|
||||
@ -17,7 +17,7 @@ Put a small non-stick saucepan on a low heat. Add the @butter{20%g} and leave to
|
||||
|
||||
Crack the @eggs{3%large} into a bowl, add a pinch of @salt{} and @black pepper{} and beat with a fork. When the buter has melted, add the eggs to the pan. Stir the eggs slowly with a spatula, getting right into the sides of the pan. Cook gently for 5 to 10 minutes until they just start to scramble then turn the heat off - they'll continute to cook on their own.
|
||||
|
||||
Get two plates and pop a warm tortilla on each one. Divide the scrambled eggs between them then top with a good spoonful of you home-made @./Components/Beans{}.
|
||||
Get two plates and pop a warm tortilla on each one. Divide the scrambled eggs between them then top with a good spoonful of you home-made @./Components/Beans{2%servings}.
|
||||
|
||||
Scatter each portion with grated cheese and as much chilli as youdare, then roll each tortilla up.
|
||||
|
||||
|
||||
@ -4,8 +4,6 @@ servings: 6
|
||||
|
||||
Preheat your oven to the lowest setting. Drain the @cannellini beans{2%tins} in a sieve. Place a saucepan on a medium heat.
|
||||
|
||||
Peel and dinely slice the @garlic clove{2}. Add the @olive oil{1%tbsp} and sliced garlic to the hot pan.
|
||||
|
||||
Crubmle the @red chilli{1%item} into the pan, then stir and fry until the grlic turns golden.
|
||||
Peel and dinely slice the @garlic clove{2}. Add the @olive oil{1%tbsp} and sliced garlic to the hot pan. Fry until the grlic turns golden.
|
||||
|
||||
Add the @tin tomatoes{2%tins} and drained cannellini beans to the pan, reduce to a low heat and simmer gently for around 20 minutes, or until reduced and nice and thick.
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
---
|
||||
prep time: 15 min
|
||||
---
|
||||
|
||||
Mix together @pork mince 10%{400%g}, @beef mince 5%{400%g}, @wholemeal flour{1/2%cup} and @onion{1%medium}(finely chopped) and stir in #stand mixer{}.
|
||||
|
||||
|
||||
|
||||
Make round pieces and put into the #freezer.
|
||||
15
Lunches/Spaghetti Bolognese.cook
Normal file
15
Lunches/Spaghetti Bolognese.cook
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
servings: 2
|
||||
---
|
||||
|
||||
Fill large #pan with water, add a bit of @salt and bring to boil.
|
||||
|
||||
Put @wholegrain spaghetti{200%g}, reduce heat and boil for ~{10%minutes}.
|
||||
|
||||
Meanwhile brown @minced beef{200%g}, add @onion{1} and cook for a few minutes.
|
||||
|
||||
Add pre-made @bolognese pasta sauce{1/2%jar} and cook for another few minutes.
|
||||
|
||||
Mix everything, add @salt and @pepper to taste.
|
||||
|
||||
Grate @parmesan{} over plate and garnish with @parsley.
|
||||
@ -1,41 +0,0 @@
|
||||
==Day 1==
|
||||
|
||||
Breakfast:
|
||||
- @./Breakfast/Easy Pancakes{10%servings} with @syrup{2%tbsp}
|
||||
- @coffee{1%cup}
|
||||
|
||||
Lunch:
|
||||
- @./Lunches/Navy Pasta{1}
|
||||
- @bread{2%slices} with @butter{1%tbsp}
|
||||
|
||||
Dinner:
|
||||
- @./Dinners/Fried Rice{500%g}
|
||||
- @soy sauce{1%tbsp}
|
||||
|
||||
==Day 2==
|
||||
|
||||
Breakfast:
|
||||
- @./Breakfast/Oats{1} with @milk{1/2%cup} and @sugar{1%tsp}
|
||||
- @orange juice{1%glass}
|
||||
|
||||
Lunch:
|
||||
- @./Lunches/Spaghetti carbonara{1}
|
||||
- @parmesan cheese{2%tbsp}
|
||||
|
||||
Dinner:
|
||||
- @./Dinners/Meatballs{1} with @pasta{1%cup}
|
||||
- @tomato sauce{1/4%cup}
|
||||
|
||||
==Day 3==
|
||||
|
||||
Breakfast:
|
||||
- @scrambled eggs{2} with @toast{2%slices}
|
||||
- @coffee{1%cup}
|
||||
|
||||
Lunch:
|
||||
- @./Slowcooker/Slow cooker chicken soup{1}
|
||||
- @crackers{1%package}
|
||||
|
||||
Dinner:
|
||||
- @./Dinners/Carbonara{1}
|
||||
- @garlic bread{2%slices}
|
||||
69
Plans/3 Day Plan I.menu
Normal file
69
Plans/3 Day Plan I.menu
Normal file
@ -0,0 +1,69 @@
|
||||
---
|
||||
servings: 2
|
||||
---
|
||||
|
||||
==Day 0==
|
||||
|
||||
-- delivery around 4pm
|
||||
|
||||
Dinner:
|
||||
- @hake fillet{2}(baked) with @./Sides/Mashed Potatoes{2%servings} and @sourdough bread{1%slice}
|
||||
- @./Salads/Boring{2%servings}
|
||||
|
||||
-- do prep for burrito
|
||||
|
||||
==Day 1==
|
||||
|
||||
Breakfast:
|
||||
- @./Breakfast/Mexican Style Burrito{2%servings}
|
||||
- @filter coffee{1%cup} and @tea{1%cup}
|
||||
|
||||
Lunch:
|
||||
- @./Lunches/Spaghetti Bolognese{}
|
||||
- @./Salads/Boring{2%servings}
|
||||
|
||||
Dinner:
|
||||
- @./Salads/Caprese{2}
|
||||
|
||||
==Day 2==
|
||||
|
||||
Breakfast:
|
||||
- @./Breakfast/Mexican Style Burrito{2%servings}
|
||||
- @filter coffee{1%cup} and @tea{1%cup}
|
||||
|
||||
Lunch:
|
||||
- @./Slowcooker/Slow-cooker beef stew{1/2} with @rice{1%cup}(boiled)
|
||||
- @tea{2%cup}
|
||||
|
||||
Dinner:
|
||||
- @./Salads/Prawn Evening Salad{2} + @sourdough bread{1%slice}
|
||||
|
||||
==Day 3==
|
||||
|
||||
Breakfast:
|
||||
- @./Breakfast/Mexican Style Burrito{2%servings}
|
||||
- @filter coffee{1%cup} and @tea{1%cup}
|
||||
|
||||
Lunch:
|
||||
- @./Slowcooker/Slow-cooker beef stew{1/2} with @./Sides/Mashed Potatoes{2%servings}
|
||||
- @tea{2%cup}
|
||||
|
||||
-- dinner from a new order
|
||||
|
||||
== Snacks ==
|
||||
|
||||
- @kefir{2}
|
||||
- @dates
|
||||
- @apples
|
||||
- @kiwi
|
||||
- @Parma ham{2}
|
||||
- @smoked salmon{2}
|
||||
- @yogurt biscuits{3}
|
||||
- @sourdough bread{}
|
||||
|
||||
== Batch Prep ==
|
||||
|
||||
- @./Freezable/Kotletter{}
|
||||
|
||||
== Baby ==
|
||||
- @cotton pads{2}
|
||||
@ -1,5 +1,5 @@
|
||||
items:
|
||||
{% for ingredient in get_ingredient_list(ingredients) %}
|
||||
{% for ingredient in excluding_pantry(get_ingredient_list(ingredients)) %}
|
||||
- name: {{ingredient.name}}
|
||||
amount: {{ingredient.quantities}}
|
||||
link: {{ db(underscore(ingredient.name) ~ ".shopping.supervalu.opt_1.url") }}
|
||||
|
||||
7
Salads/Boring.cook
Normal file
7
Salads/Boring.cook
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
servings: 2
|
||||
---
|
||||
|
||||
Mix @cherry tomatoes{8}, @English cucumber{1/4}, @radish{6}, @salad leaves{80%g}
|
||||
|
||||
Top with @extra virgin olive oil{}
|
||||
@ -1 +1,16 @@
|
||||
TODO
|
||||
---
|
||||
course: Salad
|
||||
cuisine: Italian
|
||||
prep time: 15 minutes
|
||||
servings: 1
|
||||
source: "https://natashaskitchen.com/caprese-salad-recipe"
|
||||
tags: quick
|
||||
time required: 15 minutes
|
||||
---
|
||||
|
||||
|
||||
Start by layering slices of @tomatoes{1%large} on a #serving platter{}.
|
||||
|
||||
Tuck slices of @buffalo mozzarella{2%balls} between each tomato so both are visible then tuck whole @basil{1%bunch} leaves between the cheese and tomatoes. Arrange the slices so you can see every layer.
|
||||
|
||||
Just before serving, season generously with @salt, drizzle all over with @olive oil{1%tbsp}, and drizzle with @balsamic glaze{1%tbsp}.
|
||||
|
||||
218
Salads/building menus
Normal file
218
Salads/building menus
Normal file
@ -0,0 +1,218 @@
|
||||
building menus
|
||||
|
||||
- search top-rated ... recipe
|
||||
- remember previous days back, record it as a plan
|
||||
|
||||
```
|
||||
cook shopping-list --base-path /Users/alexeydubovskoy/recipes --ingredients-only "Plans/3 Day Plan I.menu" | cargo run -- scrape
|
||||
```
|
||||
Starting to scrape 35 products from SuperValu...
|
||||
Scraping: Bolognese Pasta Sauce
|
||||
🔗 Navigating to: https://shop.supervalu.ie/sm/delivery/rsid/404/results?q=Bolognese%20Pasta%20Sauce
|
||||
⏳ Waiting for page to load...
|
||||
🍪 Handling cookie consent...
|
||||
🔍 Waiting for products to load...
|
||||
📦 Found 3 products
|
||||
✓ Saved shopping data to: "../config/db/bolognese_pasta_sauce/shopping.yml"
|
||||
✓ Successfully scraped Bolognese Pasta Sauce
|
||||
|
||||
|
||||
cargo run login
|
||||
🔐 Logging in to SuperValu...
|
||||
🍪 Handling cookie consent...
|
||||
🔐 Logging in to SuperValu...
|
||||
✅ Successfully logged in
|
||||
✅ Login successful! Cookies saved to: "/Users/alexeydubovskoy/Library/Application Support/shop-automation/supervalu_cookies.json"
|
||||
You can now use the 'shop' command without logging in each time.
|
||||
|
||||
|
||||
|
||||
recipes git:(main) ✗ /Users/alexeydubovskoy/cooklang/CookCLI/target/debug/cook -vvv report -t Reports/shopping-list.yaml.jinja -d config/db -p config/pantry.conf "Plans/3 Day Plan I.menu" | shop-automation/target/debug/shop-automation shop - --visible
|
||||
WARN ⚠️ The report command is a prototype feature and will change in future versions.
|
||||
TRACE checking auto aisle file: /Users/alexeydubovskoy/recipes/config/aisle.conf
|
||||
Warning in aisle file: Duplicate ingredient: 'carrots'
|
||||
Warning in 'Salads/Prawn Evening Salad': Invalid timer quantity: missing unit
|
||||
Warning: key 'english_cucumber.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'parma_ham.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'bay_leaves.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'beef_mince_5%.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'cheddar_cheese.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'coriander.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'coriander_leaves.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'eggs.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'hake_fillet.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'kefir.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'kiwi.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'lime.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'milk.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'minced_beef.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'pork_mince_10%.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'potatoes.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'radish.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'salad_leaves.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'tomato_purée.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
Warning: key 'tortillas.shopping.supervalu.opt_2.url' not found in datastore, using empty value
|
||||
🛒 Starting shopping automation with 35 items
|
||||
🌐 Navigating to SuperValu...
|
||||
🍪 Handling cookie consent...
|
||||
🍪 Using saved cookies...
|
||||
✅ Successfully restored session
|
||||
|
||||
📅 Please select your delivery slot in the browser.
|
||||
Once you've selected a delivery slot, press Enter here to continue...
|
||||
|
||||
✅ Starting to add items to cart...
|
||||
|
||||
|
||||
📦 [1/35] Processing: English cucumber
|
||||
Amount needed: 0.5
|
||||
✅ Added to cart
|
||||
|
||||
📦 [2/35] Processing: Parma ham
|
||||
Amount needed: 2
|
||||
✅ Added to cart
|
||||
|
||||
📦 [3/35] Processing: apples
|
||||
✅ Added to cart
|
||||
|
||||
📦 [4/35] Processing: avocados
|
||||
Amount needed: 2
|
||||
✅ Added to cart
|
||||
|
||||
📦 [5/35] Processing: bay leaves
|
||||
Amount needed: 2
|
||||
✅ Added to cart
|
||||
|
||||
📦 [6/35] Processing: beef mince 5%
|
||||
Amount needed: 400 g
|
||||
✅ Added to cart
|
||||
|
||||
📦 [7/35] Processing: bolognese pasta sauce
|
||||
Amount needed: 1/2 jar
|
||||
✅ Added to cart
|
||||
|
||||
📦 [8/35] Processing: buffalo mozzarella
|
||||
Amount needed: 4 balls
|
||||
✅ Added to cart
|
||||
|
||||
📦 [9/35] Processing: carrots
|
||||
Amount needed: 3
|
||||
✅ Added to cart
|
||||
|
||||
📦 [10/35] Processing: celery
|
||||
Amount needed: 2 sticks
|
||||
✅ Added to cart
|
||||
|
||||
📦 [11/35] Processing: cheddar cheese
|
||||
Amount needed: 75 g
|
||||
✅ Added to cart
|
||||
|
||||
📦 [12/35] Processing: cherry tomatoes
|
||||
Amount needed: 26
|
||||
✅ Added to cart
|
||||
|
||||
📦 [13/35] Processing: coriander
|
||||
Amount needed: 1 bunch
|
||||
✅ Added to cart
|
||||
|
||||
📦 [14/35] Processing: coriander leaves
|
||||
⚠️ Item might be out of stock
|
||||
|
||||
📦 [15/35] Processing: cotton pads
|
||||
Amount needed: 2
|
||||
✅ Added to cart
|
||||
|
||||
📦 [16/35] Processing: dates
|
||||
✅ Added to cart
|
||||
|
||||
📦 [17/35] Processing: eggs
|
||||
Amount needed: 9 large
|
||||
✅ Added to cart
|
||||
|
||||
📦 [18/35] Processing: hake fillet
|
||||
Amount needed: 2
|
||||
✅ Added to cart
|
||||
|
||||
📦 [19/35] Processing: kefir
|
||||
Amount needed: 2
|
||||
✅ Added to cart
|
||||
|
||||
📦 [20/35] Processing: kiwi
|
||||
✅ Added to cart
|
||||
|
||||
📦 [21/35] Processing: lime
|
||||
✅ Added to cart
|
||||
|
||||
📦 [22/35] Processing: milk
|
||||
Amount needed: 0.4 cup
|
||||
✅ Added to cart
|
||||
|
||||
📦 [23/35] Processing: minced beef
|
||||
Amount needed: 200 g
|
||||
⚠️ Item might be out of stock
|
||||
|
||||
📦 [24/35] Processing: pork mince 10%
|
||||
Amount needed: 400 g
|
||||
✅ Added to cart
|
||||
|
||||
📦 [25/35] Processing: potatoes
|
||||
Amount needed: 0.8 kg
|
||||
✅ Added to cart
|
||||
|
||||
📦 [26/35] Processing: radish
|
||||
Amount needed: 12
|
||||
✅ Added to cart
|
||||
|
||||
📦 [27/35] Processing: roast beef
|
||||
Amount needed: 900 g
|
||||
✅ Added to cart
|
||||
|
||||
📦 [28/35] Processing: salad leaves
|
||||
Amount needed: 160 g
|
||||
✅ Added to cart
|
||||
|
||||
📦 [29/35] Processing: smoked salmon
|
||||
Amount needed: 2
|
||||
✅ Added to cart
|
||||
|
||||
📦 [30/35] Processing: sour cream
|
||||
Amount needed: 12 tbsp
|
||||
✅ Added to cart
|
||||
|
||||
📦 [31/35] Processing: sourdough bread
|
||||
Amount needed: 2 slice
|
||||
✅ Added to cart
|
||||
|
||||
📦 [32/35] Processing: tomato purée
|
||||
Amount needed: 2 tbsp
|
||||
✅ Added to cart
|
||||
|
||||
📦 [33/35] Processing: tomatoes
|
||||
Amount needed: 2 large
|
||||
✅ Added to cart
|
||||
|
||||
📦 [34/35] Processing: tortillas
|
||||
Amount needed: 6 large
|
||||
✅ Added to cart
|
||||
|
||||
📦 [35/35] Processing: yogurt biscuits
|
||||
Amount needed: 3
|
||||
✅ Added to cart
|
||||
|
||||
============================================================
|
||||
📊 SHOPPING SUMMARY
|
||||
============================================================
|
||||
|
||||
✅ Successfully added: 33 items
|
||||
|
||||
❌ Failed to add 2 items:
|
||||
- coriander leaves
|
||||
- minced beef
|
||||
|
||||
============================================================
|
||||
|
||||
🛒 Browser is ready for checkout.
|
||||
Review your cart and complete your purchase.
|
||||
Press Enter here when you're done to close the browser...
|
||||
|
||||
✅ Shopping session complete!
|
||||
21
Sides/Mashed Potatoes.cook
Normal file
21
Sides/Mashed Potatoes.cook
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
cook time: 20 minutes
|
||||
course: Side Dish
|
||||
cuisine: American
|
||||
prep time: 15 minutes
|
||||
servings: 10
|
||||
source: "https://www.spendwithpennies.com/how-to-make-mashed-potatoes"
|
||||
tags: best, easy, homemade, mashed potatoes, Thanksgiving
|
||||
time required: 35 minutes
|
||||
---
|
||||
|
||||
|
||||
Peel and quarter @potatoes{2%kg}, place in a #pot{} of cold salted water.
|
||||
|
||||
Add cloves of @garlic{3%cloves} (if using) & bring to a boil, cook uncovered for ~{15%minutes} or until fork-tender. Drain well.
|
||||
|
||||
Heat @milk{1%cup} on the stove top (or in the microwave) until warm.
|
||||
|
||||
Add @butter{1/3%cup} to the potatoes and begin mashing. Pour in heated milk a little at a time while using a #potato masher{} to reach desired consistency.
|
||||
|
||||
Season with @salt and @pepper. Serve hot.
|
||||
@ -1,15 +0,0 @@
|
||||
---
|
||||
title: Beef Slow Cooker
|
||||
---
|
||||
|
||||
Season the @beef chuck roast{1%kg} with @salt and @ground black pepper{}.
|
||||
|
||||
In a #skillet, brown the beef on all sides over medium heat, then transfer to the #slow cooker{}.
|
||||
|
||||
Add the @onions{2}, @garlic{4 cloves}, @carrots{500g}, @potatoes{500g}, @diced tomatoes{400g}, @beef broth{200ml}, @Worcestershire sauce{2tbsp}, @dried thyme{1tsp}, and @paprika{1tsp} to the slow cooker.
|
||||
|
||||
Stir gently to combine.
|
||||
|
||||
Cover and cook on low for ~{8%hours} or high for ~{4%hours}, until the beef is tender.
|
||||
|
||||
Shred the beef before serving and mix it with the vegetables and sauce.
|
||||
29
Slowcooker/Slow-cooker beef stew.cook
Normal file
29
Slowcooker/Slow-cooker beef stew.cook
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
author: Lulu Grimes
|
||||
cook time: 4 hours
|
||||
course: Dinner, Main course, Supper
|
||||
prep time: 20 minutes
|
||||
servings: 4
|
||||
source: "https://www.bbcgoodfood.com/recipes/slow-cooker-beef-stew"
|
||||
tags: 2 of 5-a-day, Beef stew, Family, Family friendly, Fibre, Folate, Freezable, Lulu Grimes, Slow cooker
|
||||
time required: 4 hours 20 minutes
|
||||
---
|
||||
|
||||
|
||||
Fry the @onion{1} and @celery{2%sticks} in 1 tbsp @oil{2%tbsp} over a low heat until they start to soften – about ~{5%mins}.
|
||||
|
||||
Add the @carrots{3}, @bay leaves{2} and @thyme{1/2%pack}, fry for ~{2%mins}, stir in the @tomato purée{2%tbsp} and @Worcestershire sauce{2%tbsp}, add 600ml boiling @water{600%ml}, stir and tip everything into a #slow cooker{}.
|
||||
|
||||
Season with @pepper{} and @salt.
|
||||
|
||||
Clean out the #frying pan{} and fry the @roast beef{900%g} in the remaining oil in batches until it is well browned, then tip each batch into the slow cooker.
|
||||
|
||||
Cook on low for 8-10 hrs, or on high for 4 hrs.
|
||||
|
||||
If you want to thicken the gravy, mix the @cornflour{2%tsp}(optional) with a splash of cold @water{} to make a paste, then stir in 2 tbsp of the liquid from the slow cooker.
|
||||
|
||||
Tip back into the slow cooker, stir and cook for a further 30 mins on high.
|
||||
|
||||
Stir in the @parsley{1/2%small bunch} and season again to taste. Serve with mash, if you like.
|
||||
|
||||
Leave to cool before freezing.
|
||||
@ -1,5 +1,11 @@
|
||||
supervalu:
|
||||
opt_3:
|
||||
name: SuperValu Loose Cooking Apples
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-loose-cooking-apples-1-kg-id-1036677000
|
||||
price: €2.45/kg
|
||||
price_per_unit: €2.45/kg
|
||||
quantity: 1 kg
|
||||
opt_2:
|
||||
name: SuperValu Loose Pink Lady Apples
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-loose-pink-lady-apples-1-piece-id-1179723000
|
||||
price: €0.55
|
||||
@ -11,9 +17,3 @@ supervalu:
|
||||
price: €1.49
|
||||
price_per_unit: €0.19 each
|
||||
quantity: 8 Piece
|
||||
opt_2:
|
||||
name: SuperValu Loose Cooking Apples
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-loose-cooking-apples-1-kg-id-1036677000
|
||||
price: €2.45/kg
|
||||
price_per_unit: €2.45/kg
|
||||
quantity: 1 kg
|
||||
|
||||
13
config/db/avocados/shopping.yml
Normal file
13
config/db/avocados/shopping.yml
Normal file
@ -0,0 +1,13 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Signature Tastes Ripe Hass Avocados
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-ripe-hass-avocados-2-piece-id-1331324001
|
||||
price: €2.49
|
||||
price_per_unit: €1.25 each
|
||||
quantity: 2 Piece
|
||||
opt_2:
|
||||
name: SuperValu Signature Tastes Ripe Avocado
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-ripe-avocado-1-piece-id-1007563000
|
||||
price: €1.35
|
||||
price_per_unit: €1.35
|
||||
quantity: 1 Piece
|
||||
7
config/db/bay_leaves/shopping.yml
Normal file
7
config/db/bay_leaves/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: Schwartz Bay Leaves
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/schwartz-bay-leaves-3-g-id-1723634000
|
||||
price: €2.50
|
||||
price_per_unit: €833.33/kg
|
||||
quantity: 3 g
|
||||
19
config/db/beans/shopping.yml
Normal file
19
config/db/beans/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
name: Heinz Baked Beans
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/heinz-baked-beans-415-g-id-1011892000
|
||||
price: €1.50
|
||||
price_per_unit: €3.61/kg
|
||||
quantity: 415 g
|
||||
opt_3:
|
||||
name: SuperValu Baked Beans
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-baked-beans-420-g-id-1008169000
|
||||
price: €0.48
|
||||
price_per_unit: €1.14/kg
|
||||
quantity: 420 g
|
||||
opt_1:
|
||||
name: Batchelors Baked Beans
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/batchelors-baked-beans-225-g-id-1025306000
|
||||
price: €1.30
|
||||
price_per_unit: €5.78/kg
|
||||
quantity: 225 g
|
||||
6
config/db/beef_mince_5%/shopping.yml
Normal file
6
config/db/beef_mince_5%/shopping.yml
Normal file
@ -0,0 +1,6 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Fresh Irish Beef Round Steak Mince (454 g)
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-fresh-irish-beef-round-steak-mince-454-g-id-1390464002
|
||||
price: €4.99
|
||||
price_per_unit: €6.61/kg
|
||||
19
config/db/bolognese_pasta_sauce/shopping.yml
Normal file
19
config/db/bolognese_pasta_sauce/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
name: Heinz Tomato Bolognese Pasta Sauce
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/heinz-tomato-bolognese-pasta-sauce-490-g-id-1882775000
|
||||
price: €3.79
|
||||
price_per_unit: €7.73/kg
|
||||
quantity: 490 g
|
||||
opt_1:
|
||||
name: SuperValu Signature Tastes Traditional Bolognese Pasta Sauce
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-traditional-bolognese-pasta-sauce-350-g-id-1350410000
|
||||
price: €2.50
|
||||
price_per_unit: €7.14/kg
|
||||
quantity: 350 g
|
||||
opt_3:
|
||||
name: Heinz Tomato Bolognese Pasta Sauce
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/heinz-tomato-bolognese-pasta-sauce-350-g-id-1882122004
|
||||
price: €2.50
|
||||
price_per_unit: €7.14/kg
|
||||
quantity: 350 g
|
||||
13
config/db/buffalo_mozzarella/shopping.yml
Normal file
13
config/db/buffalo_mozzarella/shopping.yml
Normal file
@ -0,0 +1,13 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
name: SuperValu Signature Tastes Buffalo Mozzarella Cheese
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-buffalo-mozzarella-cheese-125-g-id-1209960000
|
||||
price: €2.89
|
||||
price_per_unit: €23.12/kg
|
||||
quantity: 125 g
|
||||
opt_1:
|
||||
name: Macroom Buffalo Irish Mozzarella
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/macroom-buffalo-irish-mozzarella-125-g-id-1448230000
|
||||
price: €3.39
|
||||
price_per_unit: €27.12/kg
|
||||
quantity: 125 g
|
||||
@ -1,17 +1,11 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Carrots & Parsnips
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-carrots-&-parsnips-500-g-id-1002386000
|
||||
price: €1.29
|
||||
price_per_unit: €2.58/kg
|
||||
quantity: 500 g
|
||||
opt_3:
|
||||
opt_2:
|
||||
name: SuperValu Irish Carrots Loose
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-irish-carrots-loose-1-kg-id-1086702000
|
||||
price: €1.35/kg
|
||||
price_per_unit: €1.35/kg
|
||||
quantity: 1 kg
|
||||
opt_2:
|
||||
opt_1:
|
||||
name: SuperValu Irish Grown Carrots
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-irish-grown-carrots-1-kg-id-1022674001
|
||||
price: €1.29
|
||||
|
||||
19
config/db/celery/shopping.yml
Normal file
19
config/db/celery/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Celery
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-celery-1-piece-id-1023533000
|
||||
price: €0.99
|
||||
price_per_unit: €0.99
|
||||
quantity: 1 Piece
|
||||
opt_3:
|
||||
name: SuperValu Loose Leeks
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-loose-leeks-1-kg-id-1036694000
|
||||
price: €4.65/kg
|
||||
price_per_unit: €4.65/kg
|
||||
quantity: 1 kg
|
||||
opt_2:
|
||||
name: SuperValu Organic Celery
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-organic-celery-1-piece-id-1015370000
|
||||
price: €1.99
|
||||
price_per_unit: €1.99
|
||||
quantity: 1 Piece
|
||||
7
config/db/cheddar_cheese/shopping.yml
Normal file
7
config/db/cheddar_cheese/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Light Red Grated Cheddar Cheese (200 g)
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-light-red-grated-cheddar-cheese-200-g-id-1033911000
|
||||
price: €2.05
|
||||
price_per_unit: €10.25/kg
|
||||
quantity: 200 g
|
||||
19
config/db/cherry_tomatoes/shopping.yml
Normal file
19
config/db/cherry_tomatoes/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
name: SuperValu Organic Cherry Tomatoes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-organic-cherry-tomatoes-250-g-id-1180005000
|
||||
price: €1.69
|
||||
price_per_unit: €6.76/kg
|
||||
quantity: 250 g
|
||||
opt_3:
|
||||
name: SuperValu Organic Cherry Tomato Shakers
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-organic-cherry-tomato-shakers-250-g-id-1892078000
|
||||
price: €2.15
|
||||
price_per_unit: €8.60/kg
|
||||
quantity: 250 g
|
||||
opt_1:
|
||||
name: SuperValu Cherry Tomatoes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-cherry-tomatoes-250-g-id-1010962000
|
||||
price: €1.09
|
||||
price_per_unit: €4.36/kg
|
||||
quantity: 250 g
|
||||
6
config/db/coriander/shopping.yml
Normal file
6
config/db/coriander/shopping.yml
Normal file
@ -0,0 +1,6 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Growing Coriander (1 Piece)
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-growing-coriander-1-piece-id-1027601000
|
||||
price: €1.69
|
||||
price_per_unit: €1.69
|
||||
6
config/db/coriander_leaves/shopping.yml
Normal file
6
config/db/coriander_leaves/shopping.yml
Normal file
@ -0,0 +1,6 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Growing Coriander (1 Piece)
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-growing-coriander-1-piece-id-1027601000
|
||||
price: €1.69
|
||||
price_per_unit: €1.69
|
||||
19
config/db/cotton_pads/shopping.yml
Normal file
19
config/db/cotton_pads/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Giant Cotton Pads
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-giant-cotton-pads-40-piece-id-1308250000
|
||||
price: €1.20
|
||||
price_per_unit: €0.03 each
|
||||
quantity: 40 Piece
|
||||
opt_3:
|
||||
name: Johnson's Baby 50 Cotton Pads
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/johnsons-baby-50-cotton-pads-50-piece-id-1119171001
|
||||
price: €1.00
|
||||
price_per_unit: €0.02 each
|
||||
quantity: 50 Piece
|
||||
opt_2:
|
||||
name: Irish Breeze Oval Cotton Pads
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/irish-breeze-oval-cotton-pads-40-piece-id-1026921000
|
||||
price: €2.35
|
||||
price_per_unit: €0.06 each
|
||||
quantity: 40 Piece
|
||||
19
config/db/dates/shopping.yml
Normal file
19
config/db/dates/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_3:
|
||||
name: SuperValu Signature Tastes Organic Medjool Dates
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-organic-medjool-dates-150-g-id-1765802000
|
||||
price: €4.99
|
||||
price_per_unit: €33.27/kg
|
||||
quantity: 150 g
|
||||
opt_1:
|
||||
name: Medjool Dates
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/medjool-dates-200-g-id-1803787000
|
||||
price: €3.99
|
||||
price_per_unit: €19.95/kg
|
||||
quantity: 200 g
|
||||
opt_2:
|
||||
name: SuperValu Pitted Dates
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-pitted-dates-300-g-id-1013969000
|
||||
price: €2.25
|
||||
price_per_unit: €7.50/kg
|
||||
quantity: 300 g
|
||||
@ -1,19 +1,8 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: Daily Basics Mixed Weight Eggs
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/daily-basics-mixed-weight-eggs-18-piece-id-1246884001
|
||||
price: €4.05
|
||||
price_per_unit: €0.23 each
|
||||
quantity: 18 Piece
|
||||
opt_3:
|
||||
name: SuperValu Large Fresh Irish Eggs 6 Pack
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-large-fresh-irish-eggs-6-pack-6-piece-id-1024951000
|
||||
price: €1.79
|
||||
price_per_unit: €0.30 each
|
||||
quantity: 6 Piece
|
||||
opt_2:
|
||||
name: SuperValu Medium Fresh Irish Eggs 12 Pack
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-medium-fresh-irish-eggs-12-pack-12-piece-id-1024957000
|
||||
price: €2.69
|
||||
price_per_unit: €0.22 each
|
||||
name: SuperValu Large Fresh Irish Eggs 12 Pack (12 Piece)
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-large-fresh-irish-eggs-12-pack-12-piece-id-1024956000
|
||||
price: €2.99
|
||||
price_per_unit: €0.25 each
|
||||
quantity: 12 Piece
|
||||
|
||||
|
||||
6
config/db/english_cucumber/shopping.yml
Normal file
6
config/db/english_cucumber/shopping.yml
Normal file
@ -0,0 +1,6 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Cucumber
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-cucumber-1-piece-id-1019540000
|
||||
price: €0.89
|
||||
price_per_unit: €0.89
|
||||
7
config/db/hake_fillet/shopping.yml
Normal file
7
config/db/hake_fillet/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: Loose Hake Fillets
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/loose-hake-fillets-1-kg-id-1028898000
|
||||
price: €25.99/kg
|
||||
price_per_unit: €25.99/kg
|
||||
quantity: 1 kg
|
||||
7
config/db/kefir/shopping.yml
Normal file
7
config/db/kefir/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Strawberry Kefir
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/biotiful-gut-health-original-kefir-drink-1-l-id-1952840000
|
||||
price: €2.00
|
||||
price_per_unit: €4.00/l
|
||||
quantity: 500 ml
|
||||
7
config/db/kiwi/shopping.yml
Normal file
7
config/db/kiwi/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Signature Tastes Gold Kiwis
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-gold-kiwis-4-piece-id-1008873000
|
||||
price: €3.50
|
||||
price_per_unit: €0.88 each
|
||||
quantity: 4 Piece
|
||||
7
config/db/lime/shopping.yml
Normal file
7
config/db/lime/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Loose Limes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-loose-limes-1-piece-id-1015786000
|
||||
price: €0.49
|
||||
price_per_unit: €0.49
|
||||
quantity: 1 Piece
|
||||
@ -1,19 +1,7 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
name: Avonmore Fresh Milk
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/avonmore-fresh-milk-500-ml-id-1022803000
|
||||
price: €0.85
|
||||
price_per_unit: €1.70/l
|
||||
quantity: 500 ml
|
||||
opt_1:
|
||||
name: Premier Milk
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/premier-milk-2-l-id-1020718000
|
||||
price: €2.69
|
||||
price_per_unit: €1.35/l
|
||||
quantity: 2 L
|
||||
opt_3:
|
||||
name: Avonmore Slimline Milk
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/avonmore-slimline-milk-1-l-id-1024126000
|
||||
price: €1.49
|
||||
price_per_unit: €1.49/l
|
||||
name: Avonmore Lactose Free Milk
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/avonmore-lactose-free-milk-1-l-id-1048842000
|
||||
price: €2.19
|
||||
price_per_unit: €2.19/l
|
||||
quantity: 1 L
|
||||
|
||||
7
config/db/minced_beef/shopping.yml
Normal file
7
config/db/minced_beef/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Fresh Irish Beef Round Steak Mince
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-fresh-irish-beef-round-steak-mince-454-g-id-1390464002
|
||||
price: €3.00 was €4.99
|
||||
price_per_unit: €6.61/kg
|
||||
quantity: 454 g
|
||||
7
config/db/parma_ham/shopping.yml
Normal file
7
config/db/parma_ham/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Signature Tastes Prosciutto Di Parma Ham
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-prosciutto-di-parma-ham-100-g-id-1342493000
|
||||
price: €3.10
|
||||
price_per_unit: €31.00/kg
|
||||
quantity: 100 g
|
||||
7
config/db/pork_mince_10%/shopping.yml
Normal file
7
config/db/pork_mince_10%/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Fresh Irish Pork Mince
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-fresh-irish-pork-mince-400-g-id-1350028000
|
||||
price: €3.00
|
||||
price_per_unit: €7.50/kg
|
||||
quantity: 400 g
|
||||
@ -1,19 +1,7 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
name: SuperValu Loose Rooster Potatoes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-loose-rooster-potatoes-1-kg-id-1036675000
|
||||
price: €2.89/kg
|
||||
price_per_unit: €2.89/kg
|
||||
quantity: 1 kg
|
||||
opt_3:
|
||||
opt_1:
|
||||
name: Keogh's Fresh Potatoes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/keoghs-fresh-potatoes-2-kg-id-1389480000
|
||||
price: €3.49
|
||||
price_per_unit: €1.75/kg
|
||||
quantity: 2 kg
|
||||
opt_1:
|
||||
name: You Say Potato Fresh Peeled Potatoes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/you-say-potato-fresh-peeled-potatoes-450-g-id-1467675000
|
||||
price: €2.00
|
||||
price_per_unit: €4.44/kg
|
||||
quantity: 450 g
|
||||
|
||||
7
config/db/radish/shopping.yml
Normal file
7
config/db/radish/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Radish
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-radish-200-g-id-1084671000
|
||||
price: €0.89
|
||||
price_per_unit: €4.45/kg
|
||||
quantity: 200 g
|
||||
13
config/db/roast_beef/shopping.yml
Normal file
13
config/db/roast_beef/shopping.yml
Normal file
@ -0,0 +1,13 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Fresh Irish Beef HouseKeepers Cut
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-fresh-irish-beef-housekeepers-cut-1-kg-id-1019176000
|
||||
price: €15.99/kg
|
||||
price_per_unit: €15.99/kg
|
||||
quantity: 1 kg
|
||||
opt_2:
|
||||
name: SuperValu Fresh Irish Boneless Beef Rib Roast
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-fresh-irish-boneless-beef-rib-roast-1-kg-id-1019170001
|
||||
price: €21.99/kg
|
||||
price_per_unit: €21.99/kg
|
||||
quantity: 1 kg
|
||||
7
config/db/salad_leaves/shopping.yml
Normal file
7
config/db/salad_leaves/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: SuperValu Signature Tastes Superfood Salad
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-signature-tastes-superfood-salad-150-g-id-1663027000
|
||||
price: €2.09
|
||||
price_per_unit: €13.93/kg
|
||||
quantity: 150 g
|
||||
@ -1,17 +1,17 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
opt_1:
|
||||
name: SuperValu Smoked Salmon
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-smoked-salmon-150-g-id-1027989000
|
||||
price: €4.39
|
||||
price_per_unit: €29.27/kg
|
||||
quantity: 150 g
|
||||
opt_3:
|
||||
opt_2:
|
||||
name: SuperValu Smoked Salmon
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-smoked-salmon-100-g-id-1028051000
|
||||
price: €3.89
|
||||
price_per_unit: €38.90/kg
|
||||
quantity: 100 g
|
||||
opt_1:
|
||||
opt_3:
|
||||
name: Dunn's Smoked Salmon
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/dunns-smoked-salmon-100-g-id-1299202000
|
||||
price: €5.00
|
||||
|
||||
19
config/db/sour_cream/shopping.yml
Normal file
19
config/db/sour_cream/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_3:
|
||||
name: Mlekpol Sour Cream
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/mlekpol-sour-cream-400-g-id-1066683000
|
||||
price: €2.40
|
||||
price_per_unit: €9.60/kg
|
||||
quantity: 400 g
|
||||
opt_1:
|
||||
name: Avonmore Sour Cream
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/avonmore-sour-cream-200-ml-id-1017013000
|
||||
price: €1.69
|
||||
price_per_unit: €8.45/l
|
||||
quantity: 200 ml
|
||||
opt_2:
|
||||
name: SuperValu Sour Cream
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-sour-cream-200-ml-id-1343396000
|
||||
price: €0.99
|
||||
price_per_unit: €4.95/l
|
||||
quantity: 200 ml
|
||||
19
config/db/sourdough_bread/shopping.yml
Normal file
19
config/db/sourdough_bread/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: Hand Crafted White Sourdough Boule
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/hand-crafted-white-sourdough-boule-630-g-id-1768785001
|
||||
price: €3.50
|
||||
price_per_unit: €5.56/kg
|
||||
quantity: 630 g
|
||||
opt_2:
|
||||
name: Sourdough Brown Pave
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/sourdough-brown-pave-400-g-id-1956759000
|
||||
price: €2.85
|
||||
price_per_unit: €7.13/kg
|
||||
quantity: 400 g
|
||||
opt_3:
|
||||
name: Kelkin Gluten Free Sourdough Bread
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/kelkin-gluten-free-sourdough-bread-200-g-id-1406094000
|
||||
price: €2.60 was €3.49
|
||||
price_per_unit: €13.00/kg
|
||||
quantity: 200 g
|
||||
7
config/db/tomato_purée/shopping.yml
Normal file
7
config/db/tomato_purée/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: Roma Tomato Puree Tubes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/roma-tomato-puree-tubes-140-g-id-1007760000
|
||||
price: €1.50
|
||||
price_per_unit: €10.71/kg
|
||||
quantity: 140 g
|
||||
@ -1,5 +1,5 @@
|
||||
supervalu:
|
||||
opt_2:
|
||||
opt_1:
|
||||
name: SuperValu Beef Tomatoes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-beef-tomatoes-2-piece-id-1600884000
|
||||
price: €2.35
|
||||
@ -11,7 +11,7 @@ supervalu:
|
||||
price: €1.09
|
||||
price_per_unit: €4.36/kg
|
||||
quantity: 250 g
|
||||
opt_1:
|
||||
opt_2:
|
||||
name: SuperValu Tomatoes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-tomatoes-6-piece-id-1016514000
|
||||
price: €1.29
|
||||
|
||||
7
config/db/tortillas/shopping.yml
Normal file
7
config/db/tortillas/shopping.yml
Normal file
@ -0,0 +1,7 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: Fitzgeralds Wholemeal Wraps 6 Pack
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/fitzgeralds-wholemeal-wraps-6-pack-370-g-id-1174452001
|
||||
price: €2.45
|
||||
price_per_unit: €6.62/kg
|
||||
quantity: 370 g
|
||||
19
config/db/yogurt_biscuits/shopping.yml
Normal file
19
config/db/yogurt_biscuits/shopping.yml
Normal file
@ -0,0 +1,19 @@
|
||||
supervalu:
|
||||
opt_1:
|
||||
name: Bunalun Organic Rice Cakes Yoghurt
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/bunalun-organic-rice-cakes-yoghurt-100-g-id-1019219001
|
||||
price: €3.00 was €3.99
|
||||
price_per_unit: €30.00/kg
|
||||
quantity: 100 g
|
||||
opt_3:
|
||||
name: SuperValu Mixed Berry Yogurt Rice Cakes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-mixed-berry-yogurt-rice-cakes-96-g-id-1799671000
|
||||
price: €1.25
|
||||
price_per_unit: €13.02/kg
|
||||
quantity: 96 g
|
||||
opt_2:
|
||||
name: SuperValu Yogurt Rice Cakes
|
||||
url: https://shop.supervalu.ie/sm/delivery/rsid/404/product/supervalu-yogurt-rice-cakes-100-g-id-1798305001
|
||||
price: €1.25
|
||||
price_per_unit: €12.50/kg
|
||||
quantity: 100 g
|
||||
@ -1,2 +1,50 @@
|
||||
# todo fix aliases
|
||||
water = "unlim"
|
||||
|
||||
[cupboard]
|
||||
salt = "1%kg"
|
||||
"sea salt" = "1%kg"
|
||||
"black pepper" = "200%g"
|
||||
"pepper" = "200%g"
|
||||
"smoked paprika" = "50%g"
|
||||
"ground cumin" = "50%g"
|
||||
|
||||
[teas]
|
||||
tea = "50%bags"
|
||||
"filter coffee" = "50%bags"
|
||||
|
||||
[pantry]
|
||||
# grains
|
||||
rice = "2%kg"
|
||||
"wholegrain spaghetti" = "1%kg"
|
||||
|
||||
# tins
|
||||
"tin tomatoes" = "2%cans"
|
||||
"cannellini beans" = "2%cans"
|
||||
|
||||
# vegs
|
||||
garlic = "3"
|
||||
"garlic clove" = "3"
|
||||
"red onion" = "3"
|
||||
"onion" = "3"
|
||||
|
||||
# sauces
|
||||
"extra virgin olive oil" = "50%g"
|
||||
"olive oil" = "1%l"
|
||||
"oil" = "1%l"
|
||||
"balsamic glaze" = "50%g"
|
||||
"Worcestershire sauce" = "1%bottle"
|
||||
|
||||
# baking
|
||||
"wholemeal flour" = "500%g"
|
||||
"cornflour" = "100%g"
|
||||
|
||||
[garden]
|
||||
parsley = "unlim"
|
||||
thyme = "unlim"
|
||||
basil = "unlim"
|
||||
|
||||
|
||||
[fridge]
|
||||
parmesan = "100%g"
|
||||
butter = "50%g"
|
||||
|
||||
@ -8,7 +8,7 @@ use crate::models::{ProductOption, ShoppingData};
|
||||
const SUPERVALU_BASE_URL: &str = "https://shop.supervalu.ie";
|
||||
|
||||
pub async fn scrape_product(product_name: &str, db_path: &str, visible: bool) -> Result<()> {
|
||||
// Check if shopping.yml already exists for this product
|
||||
// Check if shopping.yml already exists and has data for this product
|
||||
let clean_name = product_name
|
||||
.to_lowercase()
|
||||
.replace(" ", "_")
|
||||
@ -18,8 +18,20 @@ pub async fn scrape_product(product_name: &str, db_path: &str, visible: bool) ->
|
||||
let yaml_path = Path::new(db_path).join(&clean_name).join("shopping.yml");
|
||||
|
||||
if yaml_path.exists() {
|
||||
println!("⏭ Skipping {} - shopping.yml already exists", product_name);
|
||||
return Ok(());
|
||||
// Check if the file has actual product data
|
||||
if let Ok(content) = fs::read_to_string(&yaml_path) {
|
||||
if let Ok(data) = serde_yaml::from_str::<ShoppingData>(&content) {
|
||||
// Check if it has real data (any URL populated means it's ready)
|
||||
let has_real_data = data.supervalu.values().any(|opt| !opt.url.is_empty());
|
||||
|
||||
if has_real_data {
|
||||
println!("⏭ Skipping {} - shopping.yml has URL data (manually added or scraped)", product_name);
|
||||
return Ok(());
|
||||
} else {
|
||||
println!("🔄 Re-scraping {} - shopping.yml exists but URLs are empty", product_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Launch browser with appropriate options
|
||||
@ -114,13 +126,8 @@ pub async fn scrape_product(product_name: &str, db_path: &str, visible: bool) ->
|
||||
std::thread::sleep(Duration::from_secs(15));
|
||||
}
|
||||
|
||||
// Save to YAML file
|
||||
if !products.is_empty() {
|
||||
save_to_yaml(product_name, products, db_path)?;
|
||||
} else {
|
||||
// Print in red using ANSI escape codes
|
||||
println!("\x1b[31m⚠ No products found for: {}\x1b[0m", product_name);
|
||||
}
|
||||
// Save to YAML file (even if empty)
|
||||
save_to_yaml(product_name, products, db_path)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -257,8 +264,22 @@ fn save_to_yaml(product_name: &str, products: Vec<ProductOption>, db_path: &str)
|
||||
|
||||
// Create shopping data
|
||||
let mut shopping_data = ShoppingData::new();
|
||||
for (i, product) in products.into_iter().enumerate() {
|
||||
shopping_data.add_option(i + 1, product);
|
||||
let is_empty = products.is_empty();
|
||||
|
||||
if is_empty {
|
||||
// Create empty template with placeholder structure
|
||||
let empty_product = ProductOption {
|
||||
name: String::new(),
|
||||
url: String::new(),
|
||||
price: String::new(),
|
||||
price_per_unit: String::new(),
|
||||
quantity: None,
|
||||
};
|
||||
shopping_data.add_option(1, empty_product);
|
||||
} else {
|
||||
for (i, product) in products.into_iter().enumerate() {
|
||||
shopping_data.add_option(i + 1, product);
|
||||
}
|
||||
}
|
||||
|
||||
// Write YAML file
|
||||
@ -269,7 +290,12 @@ fn save_to_yaml(product_name: &str, products: Vec<ProductOption>, db_path: &str)
|
||||
fs::write(&yaml_path, yaml_content)
|
||||
.context(format!("Failed to write file: {:?}", yaml_path))?;
|
||||
|
||||
println!("✓ Saved shopping data to: {:?}", yaml_path);
|
||||
if is_empty {
|
||||
// Print in red using ANSI escape codes
|
||||
println!("\x1b[31m⚠ No products found for: {} - created empty shopping.yml template for manual editing\x1b[0m", product_name);
|
||||
} else {
|
||||
println!("✓ Saved {} products to: {:?}", shopping_data.supervalu.len(), yaml_path);
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user