From 6a14f8889ecd806617b6245fd9ba710e4cc5e94f Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 10 Aug 2025 13:27:41 +0200 Subject: [PATCH 1/3] fix key error --- magic_spoiler/__main__.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/magic_spoiler/__main__.py b/magic_spoiler/__main__.py index 12a23130..c82b3283 100644 --- a/magic_spoiler/__main__.py +++ b/magic_spoiler/__main__.py @@ -213,12 +213,9 @@ def scryfall2mtgjson(scryfall_cards: List[Dict[str, Any]]) -> List[Dict[str, Any for sf_card in composed_sf_cards: super_types, types, sub_types = build_types(sf_card) - if "//" in sf_card.get("name", ""): - image = ( - sf_card["card_faces"][0] - .get("image_uris", {}) - .get("normal", "") - ) + card_faces = sf_card.get("card_faces") + if card_faces and isinstance(card_faces, list) and len(card_faces) > 0: + image = card_faces[0].get("image_uris", {}).get("normal", "") else: image = sf_card.get("image_uris", {}).get("normal", "") From 10aceba7a95c01e8d078233754f9911f84bd883a Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 10 Aug 2025 13:42:33 +0200 Subject: [PATCH 2/3] simplify as api guarantees existance ``` Card Face Objects Multiface cards have a card_faces property containing at least two Card Face objects. ``` See https://scryfall.com/docs/api/cards --- magic_spoiler/__main__.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/magic_spoiler/__main__.py b/magic_spoiler/__main__.py index c82b3283..0d8756cc 100644 --- a/magic_spoiler/__main__.py +++ b/magic_spoiler/__main__.py @@ -213,9 +213,8 @@ def scryfall2mtgjson(scryfall_cards: List[Dict[str, Any]]) -> List[Dict[str, Any for sf_card in composed_sf_cards: super_types, types, sub_types = build_types(sf_card) - card_faces = sf_card.get("card_faces") - if card_faces and isinstance(card_faces, list) and len(card_faces) > 0: - image = card_faces[0].get("image_uris", {}).get("normal", "") + if "card_faces" in sf_card: + image = sf_card["card_faces"][0].get("image_uris", {}).get("normal", "") else: image = sf_card.get("image_uris", {}).get("normal", "") From f3ac505dac587b69ff432a87f158d87f7993577a Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 10 Aug 2025 21:37:07 +0200 Subject: [PATCH 3/3] formatting Use same formatting as before --- magic_spoiler/__main__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/magic_spoiler/__main__.py b/magic_spoiler/__main__.py index 0d8756cc..ebac7973 100644 --- a/magic_spoiler/__main__.py +++ b/magic_spoiler/__main__.py @@ -214,7 +214,11 @@ def scryfall2mtgjson(scryfall_cards: List[Dict[str, Any]]) -> List[Dict[str, Any super_types, types, sub_types = build_types(sf_card) if "card_faces" in sf_card: - image = sf_card["card_faces"][0].get("image_uris", {}).get("normal", "") + image = ( + sf_card["card_faces"][0] + .get("image_uris", {}) + .get("normal", "") + ) else: image = sf_card.get("image_uris", {}).get("normal", "")