First Grocery List Generated!
I picked 5 recipes, added them into a script, and ran the combiner. IT works! Mostly!
What is it doing?
It’s called Recipe Retriever
It reads my obsidian vault and finds notes which are tagged as recipes
It randomly selects from the list of recipes a number I specify in the CLI, so If I pass the number 5, it returns 5 recipe paths.
It reads the notes at those paths and parses ingredient objects from those notes
It combines those ingredients and objects into a single amount so that I can see the full amount of items I need to buy on a single line.
It generates a markdown file based on the combined ingredients
It puts that markdown file back into my obsidian vault, which uses sync, so it’s available online.
So it’s essentially a food decision-maker and shopping list generator. I call it Recipe Retriever just because I was missing my dog when I started writing it, and I found some cute ASCII art that reminds me of him.
So as you can see, I had no choice but to name it that :-)
Finishing Touches
Kind of a lot here! Let’s make bullet points.
Smart conversion of amounts POST combining the ingredients
Random recipe selection replacement scripting
The list should generate with the date and time in the title or the body to avoid confusion
Ideally, the list should have at the top the recipes that were used to generate the list
I want to add some final touches to the validator to highlight its line and the origin of failure in which file.
Organize by aisle
Converting Combined Ingredients Intelligently
By the time we’re at 450+ grams, that needs to be listed in pounds. Not many stores sell things in grams Iaround here. This is quality of life only because I can do the conversions myself, but who wants to worry about conversion in the grocery store?
Random Recipe Selection Replacements
Arguably the most important feature of the whole project, I want to be able to ask for (x) recipes from the set of recipes that I have. I want the system to pick randomly from that set, that specific number I asked for. This functionality is already working. But I can’t replace the randomly selected items that I’m not really wanting to be in the line-up for this week. That’s a high-priority one.
Date and Time included
Either in the title, or in the body of the output someplace, the data and time should be included so I can be sure I’m looking at the correct output. OR I could make it so that only one can ever exist??? TBD here.
Include Target Recipe Names in the list
I would like to know before and after going in the store what recipes I am actually going to be buying items for.
Lowest Priority: Validator Upgrades
The validator parses the ingredients from the original ingredient list, and this parsing process is prone to failures when the validator doesn’t recognize things. I’d like a more detailed report on the origin of failures whenever they occur. Ideally, I’ll run the validator each time I add a new recipe and I won’t need to worry about this. But in the event I don’t, I want some help finding the problem areas.
Organize By Aisle
This will be one of the last things I get done, and I won’t put an ETA on it. But I definitely would prefer that the list be automatically organized by aisle where I can find the ingredient to make the shopping experience a bit more fluid.
Maiden Voyage
I don’t know when I’ll use it for the first time, but I’ll be sure to make a post about that. I’ll get some pictures of the whole affair and put them into the record.
I’m weirdly excited about this, as I don’t know that I’ve ever built an app that did something for me while I was out and about in the city. This will be fun.