fix: group title on first ingredient + multi-site parser registry
- Fix ingredient groups creating empty entries in Mealie: set title field on the first ingredient after the group marker instead - Refactor scraper with @_register decorator for URL-based site dispatch - Update README with structured ingredients, groups, MEALIE_INTERNAL_URL Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+11
-12
@@ -145,27 +145,26 @@ class MealieClient:
|
||||
|
||||
def _build_payload(self, recipe: dict) -> dict:
|
||||
ingredients = []
|
||||
pending_group = ""
|
||||
for item in recipe.get("ingredients", []):
|
||||
if isinstance(item, dict):
|
||||
# Group header marker
|
||||
# Group header marker — apply title to the next real ingredient
|
||||
if "group" in item and "food" not in item:
|
||||
ingredients.append({
|
||||
"referenceId": str(uuid.uuid4()),
|
||||
"title": item["group"],
|
||||
"note": "",
|
||||
"isFood": False,
|
||||
"disableAmount": True,
|
||||
})
|
||||
else:
|
||||
ingredients.append(self._build_ingredient(item))
|
||||
pending_group = item["group"]
|
||||
continue
|
||||
ing = self._build_ingredient(item)
|
||||
else:
|
||||
# Legacy: plain string
|
||||
ingredients.append({
|
||||
ing = {
|
||||
"referenceId": str(uuid.uuid4()),
|
||||
"note": str(item),
|
||||
"isFood": False,
|
||||
"disableAmount": True,
|
||||
})
|
||||
}
|
||||
if pending_group:
|
||||
ing["title"] = pending_group
|
||||
pending_group = ""
|
||||
ingredients.append(ing)
|
||||
|
||||
instructions = []
|
||||
for text in recipe.get("instructions", []):
|
||||
|
||||
Reference in New Issue
Block a user