diff --git a/1_clean_json.py b/1_clean_json.py index b839b29..bc7e550 100644 --- a/1_clean_json.py +++ b/1_clean_json.py @@ -1,5 +1,8 @@ import json import re +import os + +from config import * def normalize_ingredients(recipe): if 'recipeIngredient' in recipe: @@ -42,4 +45,68 @@ def normalize_recipe(recipe): return cleaned_recipe -# TODO +# TODO: functions oben sind so nicht mehr funktional + + +def check_recipe(recipe) -> list: + md = [] + if 'steps' in recipe: + steps = recipe['steps'] + else: + steps = [] + md.append("No steps?") + for i, step in enumerate(steps, 1): + md += check_ingredients(step) + return md + +def normalize_amount(a): + if a == round(a): + return round(a) + else: + return a + +def check_ingredients(step): + md = [] + for ingredient in step['ingredients']: + i_amount = ingredient["amount"] + i_amount = normalize_amount(i_amount) + + if not ingredient.get("unit"): + i_unit = "" + if i_amount: + md.append("- Amount but no unit?") + else: + i_unit = ingredient["unit"]["name"] + + if i_unit and i_unit not in VALID_UNITS: + md.append(f"- Invalid unit {i_unit}") + + if not ingredient.get("food"): + md.append("- No food element in ingredient?") + continue + return md + + +def make_link(recipe): + return f"[{recipe["name"]}]({TANDOOR_URL + "/view/recipe/" + str(recipe["id"])})" + +def main(): + + recipes = [] + for json_file in os.listdir(OUTDIR_JSON): + with open(os.path.join(OUTDIR_JSON, json_file), 'r', encoding='utf-8') as f: + data = json.load(f) + recipes.append(data) + + for recipe in recipes: + md = check_recipe(recipe) + if not md: + print(f"## 💚 {make_link(recipe)}") + else: + print(f"## 💔 {make_link(recipe)}") + for line in md: + print(line) + +if __name__ == "__main__": + main() + diff --git a/config.py.example b/config_example.py similarity index 74% rename from config.py.example rename to config_example.py index 620d6cb..8c5d6db 100644 --- a/config.py.example +++ b/config_example.py @@ -14,3 +14,17 @@ OUTDIR = "out" OUTDIR_JSON = OUTDIR + "/json" OUTDIR_MARKDOWN = OUTDIR + "/markdown" OUTDIR_MEDIAWIKI = OUTDIR + "/mediawiki" + +# TODO einheitliche einheiten +VALID_UNITS = [ + "g", + "g / Gramm", + "kg", + "kg / Kilogramm", + "ml", + "Milliliter", + "Liter", + "l", + "Stück", + "Zehe", +] diff --git a/out/json/Bagel.json b/out/json/Bagel.json index a0e6db6..05f5f65 100644 --- a/out/json/Bagel.json +++ b/out/json/Bagel.json @@ -54,7 +54,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -65,7 +65,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -76,7 +76,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, @@ -760,7 +760,17 @@ { "amount": 4.0, "food": "Wasser", - "unit": "|" + "unit": "l" + }, + { + "amount": 4000.0, + "food": "Wasser", + "unit": "Milliliter" + }, + { + "amount": 4.0, + "food": "Wasser", + "unit": "Liter" } ], "food": { @@ -796,11 +806,11 @@ "original_text": null, "unit": { "base_unit": null, - "description": null, - "id": 48, - "name": "|", + "description": "", + "id": 47, + "name": "l", "open_data_slug": null, - "plural_name": "|" + "plural_name": "l" }, "used_in_recipes": [ { @@ -897,7 +907,7 @@ "time": 20 } ], - "updated_at": "2025-06-06T16:01:22.369871+02:00", + "updated_at": "2025-06-06T22:41:16.181212+02:00", "waiting_time": 0, "working_time": 0 } \ No newline at end of file diff --git a/out/json/Cashew-Streichkäse.json b/out/json/Cashew-Streichkäse.json index cc98678..4748f32 100644 --- a/out/json/Cashew-Streichkäse.json +++ b/out/json/Cashew-Streichkäse.json @@ -64,7 +64,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-11T22:29:36.599408+02:00", @@ -75,7 +75,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -86,7 +86,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -97,7 +97,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Erbsenhummus.json b/out/json/Erbsenhummus.json index c316325..153a5b4 100644 --- a/out/json/Erbsenhummus.json +++ b/out/json/Erbsenhummus.json @@ -79,7 +79,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -90,7 +90,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.072417+02:00", @@ -134,7 +134,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Erbsensuppe mit Räuchertofu.json b/out/json/Erbsensuppe mit Räuchertofu.json index c655e45..5714d02 100644 --- a/out/json/Erbsensuppe mit Räuchertofu.json +++ b/out/json/Erbsensuppe mit Räuchertofu.json @@ -94,7 +94,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -105,7 +105,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2024-08-12T00:11:38.608095+02:00", diff --git a/out/json/GPN-Tomatenbutter.json b/out/json/GPN-Tomatenbutter.json index 7db0d87..a2f385d 100644 --- a/out/json/GPN-Tomatenbutter.json +++ b/out/json/GPN-Tomatenbutter.json @@ -64,7 +64,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-11T22:29:36.599408+02:00", @@ -75,7 +75,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -86,7 +86,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.072417+02:00", @@ -130,7 +130,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Granatapfelcreme.json b/out/json/Granatapfelcreme.json index eca7872..fc7b8a3 100644 --- a/out/json/Granatapfelcreme.json +++ b/out/json/Granatapfelcreme.json @@ -79,7 +79,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-11T22:29:36.599408+02:00", @@ -90,7 +90,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -101,7 +101,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -112,7 +112,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, @@ -904,9 +904,9 @@ ] } ], - "instruction": "", - "instructions_markdown": "", - "name": "", + "instruction": "Dann alles mit den restlichen Zutaten durchp\u00fcrieren \ud83c\udf2a\ufe0f.", + "instructions_markdown": "
Dann alles mit den restlichen Zutaten durchp\u00fcrieren \ud83c\udf2a\ufe0f.
", + "name": "P\u00fcrieren", "order": 1, "show_as_header": false, "show_ingredients_table": true, @@ -915,7 +915,7 @@ "time": 0 } ], - "updated_at": "2025-05-01T18:50:09.619476+02:00", + "updated_at": "2025-06-06T23:20:56.159677+02:00", "waiting_time": 0, "working_time": 0 } \ No newline at end of file diff --git a/out/json/Gulaschmarmelade.json b/out/json/Gulaschmarmelade.json index 66bc979..f28d52c 100644 --- a/out/json/Gulaschmarmelade.json +++ b/out/json/Gulaschmarmelade.json @@ -54,7 +54,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -65,7 +65,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -76,7 +76,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Kartoffelgulasch.json b/out/json/Kartoffelgulasch.json index fcd397c..31ea519 100644 --- a/out/json/Kartoffelgulasch.json +++ b/out/json/Kartoffelgulasch.json @@ -119,7 +119,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -130,7 +130,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2024-08-12T00:11:38.608095+02:00", diff --git a/out/json/Kattis Hummus.json b/out/json/Kattis Hummus.json index b59f42d..7eec761 100644 --- a/out/json/Kattis Hummus.json +++ b/out/json/Kattis Hummus.json @@ -74,7 +74,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-11T22:29:36.599408+02:00", @@ -85,7 +85,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -96,7 +96,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -107,7 +107,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, @@ -705,33 +705,6 @@ } ] }, - { - "always_use_plural_food": false, - "always_use_plural_unit": false, - "amount": 0.0, - "conversions": [], - "food": null, - "id": 537, - "is_header": false, - "no_amount": false, - "note": "", - "order": 8, - "original_text": null, - "unit": { - "base_unit": "g", - "description": "", - "id": 5, - "name": "g / Gramm", - "open_data_slug": null, - "plural_name": "g" - }, - "used_in_recipes": [ - { - "id": 24, - "name": "Kattis Hummus" - } - ] - }, { "always_use_plural_food": false, "always_use_plural_unit": false, @@ -777,7 +750,7 @@ "is_header": false, "no_amount": false, "note": "", - "order": 9, + "order": 8, "original_text": null, "unit": { "base_unit": "g", @@ -806,7 +779,7 @@ "time": 0 } ], - "updated_at": "2025-05-01T18:00:55.899540+02:00", + "updated_at": "2025-06-06T23:47:20.985766+02:00", "waiting_time": 0, "working_time": 0 } \ No newline at end of file diff --git a/out/json/Kräuterquark.json b/out/json/Kräuterquark.json index d50737b..f9ed729 100644 --- a/out/json/Kräuterquark.json +++ b/out/json/Kräuterquark.json @@ -49,7 +49,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -60,7 +60,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Levervurst.json b/out/json/Levervurst.json index 66cfc38..898e1b3 100644 --- a/out/json/Levervurst.json +++ b/out/json/Levervurst.json @@ -79,7 +79,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-11T22:29:36.599408+02:00", @@ -90,7 +90,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -101,7 +101,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.166539+02:00", @@ -123,7 +123,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Matelade Apfel.json b/out/json/Matelade Apfel.json index 65943a5..fbbf71c 100644 --- a/out/json/Matelade Apfel.json +++ b/out/json/Matelade Apfel.json @@ -59,7 +59,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-11T22:29:36.599408+02:00", @@ -70,7 +70,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -81,7 +81,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -92,7 +92,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Mungobohnenhummus mit Jalapenos und Zatar.json b/out/json/Mungobohnenhummus mit Jalapenos und Zatar.json index bab1d37..54119c6 100644 --- a/out/json/Mungobohnenhummus mit Jalapenos und Zatar.json +++ b/out/json/Mungobohnenhummus mit Jalapenos und Zatar.json @@ -69,7 +69,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -80,7 +80,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -91,7 +91,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Ofenkartoffeln.json b/out/json/Ofenkartoffeln.json index c550336..dc2ff08 100644 --- a/out/json/Ofenkartoffeln.json +++ b/out/json/Ofenkartoffeln.json @@ -39,7 +39,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -50,7 +50,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2025-05-06T20:28:52.453996+02:00", diff --git a/out/json/Rauchige Schwarze Bohnencreme.json b/out/json/Rauchige Schwarze Bohnencreme.json index fd0398e..44ff1f1 100644 --- a/out/json/Rauchige Schwarze Bohnencreme.json +++ b/out/json/Rauchige Schwarze Bohnencreme.json @@ -89,7 +89,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-11T22:29:36.599408+02:00", @@ -100,7 +100,7 @@ "name": "Fr\u00fchst\u00fcck", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.382950+02:00" + "updated_at": "2025-06-06T23:47:20.997171+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -111,7 +111,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -122,7 +122,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Rotes Thai Spinat Süßkartoffel-Curry.json b/out/json/Rotes Thai Spinat Süßkartoffel-Curry.json index b11fcbc..efcb9c3 100644 --- a/out/json/Rotes Thai Spinat Süßkartoffel-Curry.json +++ b/out/json/Rotes Thai Spinat Süßkartoffel-Curry.json @@ -84,7 +84,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -95,7 +95,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2024-08-12T00:11:38.608095+02:00", diff --git a/out/json/Salatdressing GPN.json b/out/json/Salatdressing GPN.json index 13039a7..6b517cf 100644 --- a/out/json/Salatdressing GPN.json +++ b/out/json/Salatdressing GPN.json @@ -70,7 +70,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Salsa.json b/out/json/Salsa.json index 19301fc..45334a5 100644 --- a/out/json/Salsa.json +++ b/out/json/Salsa.json @@ -59,7 +59,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -70,7 +70,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, diff --git a/out/json/Schwarzwaldbutter.json b/out/json/Schwarzwaldbutter.json index d577746..920ef26 100644 --- a/out/json/Schwarzwaldbutter.json +++ b/out/json/Schwarzwaldbutter.json @@ -59,7 +59,7 @@ "name": "Aufstrich", "numchild": 0, "parent": null, - "updated_at": "2025-06-02T20:56:03.183760+02:00" + "updated_at": "2025-06-06T23:47:20.994220+02:00" }, { "created_at": "2024-08-12T00:12:55.162950+02:00", @@ -70,7 +70,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -81,7 +81,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, @@ -170,7 +170,7 @@ { "amount": 2.0, "food": "Knoblauch", - "unit": "Zehe/n" + "unit": "Zehe" } ], "food": { @@ -209,12 +209,12 @@ "order": 1, "original_text": "2 Zehe/n Knoblauch", "unit": { - "base_unit": null, - "description": null, - "id": 53, - "name": "Zehe/n", + "base_unit": "", + "description": "", + "id": 46, + "name": "Zehe", "open_data_slug": null, - "plural_name": "Zehe/n" + "plural_name": "Zehen" }, "used_in_recipes": [ { @@ -511,7 +511,7 @@ "time": 0 } ], - "updated_at": "2025-06-02T20:15:47.276184+02:00", + "updated_at": "2025-06-06T22:43:33.690130+02:00", "waiting_time": 0, "working_time": 0 } \ No newline at end of file diff --git a/out/json/Soja-Gulasch.json b/out/json/Soja-Gulasch.json index e95d583..f737e9f 100644 --- a/out/json/Soja-Gulasch.json +++ b/out/json/Soja-Gulasch.json @@ -124,7 +124,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -135,7 +135,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2024-08-12T00:11:38.608095+02:00", diff --git a/out/json/vegane Aioli.json b/out/json/Vegane Aioli.json similarity index 96% rename from out/json/vegane Aioli.json rename to out/json/Vegane Aioli.json index 6156960..6976350 100644 --- a/out/json/vegane Aioli.json +++ b/out/json/Vegane Aioli.json @@ -54,7 +54,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -65,11 +65,11 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" } ], "last_cooked": null, - "name": "vegane Aioli", + "name": "Vegane Aioli", "nutrition": null, "private": false, "properties": [], @@ -142,7 +142,7 @@ "used_in_recipes": [ { "id": 65, - "name": "vegane Aioli" + "name": "Vegane Aioli" } ] }, @@ -204,7 +204,7 @@ "used_in_recipes": [ { "id": 65, - "name": "vegane Aioli" + "name": "Vegane Aioli" } ] }, @@ -277,7 +277,7 @@ "used_in_recipes": [ { "id": 65, - "name": "vegane Aioli" + "name": "Vegane Aioli" } ] }, @@ -350,7 +350,7 @@ "used_in_recipes": [ { "id": 65, - "name": "vegane Aioli" + "name": "Vegane Aioli" } ] }, @@ -423,7 +423,7 @@ "used_in_recipes": [ { "id": 65, - "name": "vegane Aioli" + "name": "Vegane Aioli" } ] } @@ -439,7 +439,7 @@ "time": 0 } ], - "updated_at": "2025-05-26T21:20:01.181218+02:00", + "updated_at": "2025-06-06T23:49:52.356221+02:00", "waiting_time": 0, "working_time": 0 } \ No newline at end of file diff --git a/out/json/Veganes Pizzabaguette Käse-Räuchertofu.json b/out/json/Veganes Pizzabaguette Käse-Räuchertofu.json index 2d1d2a6..f0a8063 100644 --- a/out/json/Veganes Pizzabaguette Käse-Räuchertofu.json +++ b/out/json/Veganes Pizzabaguette Käse-Räuchertofu.json @@ -64,7 +64,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -75,7 +75,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2025-05-06T20:28:52.453996+02:00", diff --git a/out/json/Veganes Pizzabaguette Ofengemüse.json b/out/json/Veganes Pizzabaguette Ofengemüse.json index c8c4ce8..04ce615 100644 --- a/out/json/Veganes Pizzabaguette Ofengemüse.json +++ b/out/json/Veganes Pizzabaguette Ofengemüse.json @@ -79,7 +79,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -90,7 +90,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2025-05-06T20:28:52.453996+02:00", diff --git a/out/json/Veganes Pizzabaguette Tomate-Käse.json b/out/json/Veganes Pizzabaguette Tomate-Käse.json index f6df665..3137c44 100644 --- a/out/json/Veganes Pizzabaguette Tomate-Käse.json +++ b/out/json/Veganes Pizzabaguette Tomate-Käse.json @@ -74,7 +74,7 @@ "name": "GPN", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.390461+02:00" + "updated_at": "2025-06-06T23:49:52.362265+02:00" }, { "created_at": "2025-05-01T17:04:38.215340+02:00", @@ -85,7 +85,7 @@ "name": "gpn23", "numchild": 0, "parent": null, - "updated_at": "2025-06-06T16:01:22.397181+02:00" + "updated_at": "2025-06-06T23:49:52.365514+02:00" }, { "created_at": "2025-05-06T20:28:52.453996+02:00", diff --git a/out/markdown/Bagel.md b/out/markdown/Bagel.md index 2bcc0cb..a5f3af1 100644 --- a/out/markdown/Bagel.md +++ b/out/markdown/Bagel.md @@ -13,7 +13,7 @@ - 17 g Salz - 9 g Malzsyrup - 340 ml Wasser -- 4 | Wasser +- 4 l Wasser - 40 g Malzsyrup ## Zubereitung @@ -40,7 +40,7 @@ 7. StückgareLasse die Bagel für 30 Minuten ruhen.
8. Cook -- 4 | Wasser +- 4 l Wasser - 40 g MalzsyrupBagels in kochendem Malzsyrupwasser für 60 Sekunden kochen. Dann in Sesam wenden.
9. Bake diff --git a/out/markdown/Granatapfelcreme.md b/out/markdown/Granatapfelcreme.md index bc72fcb..2cacea3 100644 --- a/out/markdown/Granatapfelcreme.md +++ b/out/markdown/Granatapfelcreme.md @@ -20,7 +20,7 @@ Grundrezept sind 785 g Gesamt = ca. 40 Portionen (mit ~20g pro) 1. Einweichen - 400 g CashewkerneCashewkerne über Nacht in Wasser einweichen
-2. +2. Pürieren - 100 g Paniermehl - 500 g Paprika (frisch) - 15 g Salz @@ -30,4 +30,4 @@ Grundrezept sind 785 g Gesamt = ca. 40 Portionen (mit ~20g pro) - 30 g Granatapfelsirup - 36 g Knoblauch (frisch) - 10 g Harissa - +Dann alles mit den restlichen Zutaten durchpürieren 🌪️.
diff --git a/out/markdown/Schwarzwaldbutter.md b/out/markdown/Schwarzwaldbutter.md index 354c0fb..4725dda 100644 --- a/out/markdown/Schwarzwaldbutter.md +++ b/out/markdown/Schwarzwaldbutter.md @@ -6,7 +6,7 @@ importiert aber abgeändert ## Zutaten (gesamt) - 250 g Margarine -- 2 Zehe/n Knoblauch +- 2 Zehe Knoblauch - 50 g Kräuter gemischt (8-Kräuter) - Salz - Pfeffer (schwarz) @@ -15,7 +15,7 @@ importiert aber abgeändert ## Zubereitung 1. - 250 g Margarine -- 2 Zehe/n Knoblauch +- 2 Zehe Knoblauch - 50 g Kräuter gemischt (8-Kräuter) - Salz - Pfeffer (schwarz) diff --git a/out/markdown/vegane Aioli.md b/out/markdown/Vegane Aioli.md similarity index 100% rename from out/markdown/vegane Aioli.md rename to out/markdown/Vegane Aioli.md diff --git a/out/mediawiki/Bagel.mediawiki b/out/mediawiki/Bagel.mediawiki index fc1ea32..09ccec7 100644 --- a/out/mediawiki/Bagel.mediawiki +++ b/out/mediawiki/Bagel.mediawiki @@ -13,7 +13,7 @@ * 17 g Salz * 9 g Malzsyrup * 340 ml Wasser -* 4 | Wasser +* 4 l Wasser * 40 g Malzsyrup @@ -66,7 +66,7 @@ Lasse die Bagel für 30 Minuten ruhen.Bagels in kochendem Malzsyrupwasser für 60 Sekunden kochen. Dann in Sesam wenden. diff --git a/out/mediawiki/Granatapfelcreme.mediawiki b/out/mediawiki/Granatapfelcreme.mediawiki index 31060c9..5915c89 100644 --- a/out/mediawiki/Granatapfelcreme.mediawiki +++ b/out/mediawiki/Granatapfelcreme.mediawiki @@ -28,14 +28,18 @@ Cashewkerne über Nacht in Wasser einweichen
+Dann alles mit den restlichen Zutaten durchpürieren 🌪️. +