From 8f4f7f245b6925291179fd92f14f017e699bee41 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Thu, 26 Feb 2026 08:36:13 +0100 Subject: [PATCH] Fix KeyError on keyword/tag objects without 'name' field Tandoor recipe list API may return keyword objects without a 'name' key, causing KeyError('name'). Use .get() with filtering across all tag/keyword list comprehensions in both Mealie and Tandoor clients. Co-Authored-By: Claude Opus 4.6 --- app/mealie.py | 4 ++-- app/tandoor.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/mealie.py b/app/mealie.py index 669c2d0..e87957b 100644 --- a/app/mealie.py +++ b/app/mealie.py @@ -126,7 +126,7 @@ class MealieClient: "id": item["slug"], "name": item.get("name", ""), "image": image_url, - "tags": [t["name"] for t in item.get("tags", [])], + "tags": [t.get("name", "") for t in item.get("tags", []) if t.get("name")], "url": f"{self.base_url}/g/home/r/{item['slug']}", }) return { @@ -177,7 +177,7 @@ class MealieClient: instructions.append(text) # Parse tags - tags = [t["name"] for t in data.get("tags", [])] + tags = [t.get("name", "") for t in data.get("tags", []) if t.get("name")] # Image URL image_url = "" diff --git a/app/tandoor.py b/app/tandoor.py index 0f9257f..8969efe 100644 --- a/app/tandoor.py +++ b/app/tandoor.py @@ -105,7 +105,7 @@ class TandoorClient: "id": item["id"], "name": item.get("name", ""), "image": item.get("image") or "", - "tags": [k["name"] for k in item.get("keywords", [])], + "tags": [k.get("name", "") for k in item.get("keywords", []) if k.get("name")], "url": f"{self.base_url}/view/recipe/{item['id']}", }) return { @@ -156,7 +156,7 @@ class TandoorClient: instructions.append(text) # Parse tags - tags = [k["name"] for k in data.get("keywords", [])] + tags = [k.get("name", "") for k in data.get("keywords", []) if k.get("name")] return { "title": data.get("name", ""), @@ -202,7 +202,7 @@ class TandoorClient: if source == url or url in desc: return { "id": item["id"], - "name": item["name"], + "name": item.get("name", ""), "url": f"{self.base_url}/view/recipe/{item['id']}", } return None