From b8cbc496473698e5f672af562ba98a4cdee047b6 Mon Sep 17 00:00:00 2001 From: Flo Greistorfer Date: Tue, 24 Jun 2025 09:59:54 +0200 Subject: [PATCH] except TypeError --- modules/generate_html.py | 54 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/modules/generate_html.py b/modules/generate_html.py index 04ed2ac..d7dd4ea 100644 --- a/modules/generate_html.py +++ b/modules/generate_html.py @@ -185,20 +185,20 @@ def get_image_info(item: str, folder: str) -> dict[str, Any]: xmp = None if xmpdata: logger.info("extracting XMP data", extra={"file": file}) - if xmpdata.get("xmpmeta", False): - if isinstance(xmpdata["xmpmeta"]["RDF"]["Description"], dict): - if xmpdata["xmpmeta"]["RDF"]["Description"].get("subject", False): - tags = xmpdata["xmpmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] - if isinstance(tags, str): - tags = [tags] - xmp = xmpdata - if xmpdata.get("xapmeta", False): - if isinstance(xmpdata["xapmeta"]["RDF"]["Description"], dict): - if xmpdata["xapmeta"]["RDF"]["Description"].get("subject", False): - tags = xmpdata["xapmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] - if isinstance(tags, str): - tags = [tags] - xmp = xmpdata + try: + tags = xmpdata["xmpmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] + if isinstance(tags, str): + tags = [tags] + xmp = xmpdata + except TypeError: + ... + try: + tags = xmpdata["xapmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] + if isinstance(tags, str): + tags = [tags] + xmp = xmpdata + except TypeError: + ... if None in tags: tags.remove(None) return {"width": width, "height": height, "tags": tags, "exifdata": exifdata, "xmp": xmp} @@ -219,18 +219,20 @@ def get_tags(sidecarfile: str) -> list[str]: strbuffer = sidecar.read() xmpdata = getxmp(strbuffer) tags = [] - if xmpdata.get("xmpmeta", False): - if isinstance(xmpdata["xmpmeta"]["RDF"]["Description"], dict): - if xmpdata["xmpmeta"]["RDF"]["Description"].get("subject", False): - tags = xmpdata["xmpmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] - if isinstance(tags, str): - tags = [tags] - if xmpdata.get("xapmeta", False): - if isinstance(xmpdata["xapmeta"]["RDF"]["Description"], dict): - if xmpdata["xapmeta"]["RDF"]["Description"].get("subject", False): - tags = xmpdata["xapmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] - if isinstance(tags, str): - tags = [tags] + try: + tags = xmpdata["xmpmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] + if isinstance(tags, str): + tags = [tags] + xmp = xmpdata + except TypeError: + ... + try: + tags = xmpdata["xapmeta"]["RDF"]["Description"]["subject"]["Bag"]["li"] + if isinstance(tags, str): + tags = [tags] + xmp = xmpdata + except TypeError: + ... if None in tags: tags.remove(None) return tags