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 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -126,7 +126,7 @@ class MealieClient:
|
|||||||
"id": item["slug"],
|
"id": item["slug"],
|
||||||
"name": item.get("name", ""),
|
"name": item.get("name", ""),
|
||||||
"image": image_url,
|
"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']}",
|
"url": f"{self.base_url}/g/home/r/{item['slug']}",
|
||||||
})
|
})
|
||||||
return {
|
return {
|
||||||
@@ -177,7 +177,7 @@ class MealieClient:
|
|||||||
instructions.append(text)
|
instructions.append(text)
|
||||||
|
|
||||||
# Parse tags
|
# 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
|
||||||
image_url = ""
|
image_url = ""
|
||||||
|
|||||||
+3
-3
@@ -105,7 +105,7 @@ class TandoorClient:
|
|||||||
"id": item["id"],
|
"id": item["id"],
|
||||||
"name": item.get("name", ""),
|
"name": item.get("name", ""),
|
||||||
"image": item.get("image") or "",
|
"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']}",
|
"url": f"{self.base_url}/view/recipe/{item['id']}",
|
||||||
})
|
})
|
||||||
return {
|
return {
|
||||||
@@ -156,7 +156,7 @@ class TandoorClient:
|
|||||||
instructions.append(text)
|
instructions.append(text)
|
||||||
|
|
||||||
# Parse tags
|
# 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 {
|
return {
|
||||||
"title": data.get("name", ""),
|
"title": data.get("name", ""),
|
||||||
@@ -202,7 +202,7 @@ class TandoorClient:
|
|||||||
if source == url or url in desc:
|
if source == url or url in desc:
|
||||||
return {
|
return {
|
||||||
"id": item["id"],
|
"id": item["id"],
|
||||||
"name": item["name"],
|
"name": item.get("name", ""),
|
||||||
"url": f"{self.base_url}/view/recipe/{item['id']}",
|
"url": f"{self.base_url}/view/recipe/{item['id']}",
|
||||||
}
|
}
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user