From 1f4a7f4d6a27fa803bc076341ff206e84ea8a864 Mon Sep 17 00:00:00 2001 From: Birger Schacht Date: Mon, 30 Sep 2024 10:12:50 +0200 Subject: [PATCH] fix(serializers): cleanup get_folio to return the correct page --- apis_ontology/serializers.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/apis_ontology/serializers.py b/apis_ontology/serializers.py index 8d04a5e..0ce6d5f 100644 --- a/apis_ontology/serializers.py +++ b/apis_ontology/serializers.py @@ -37,20 +37,21 @@ def get_folio(obj): page = f"{page:03d}" if obj.folio: page = obj.folio - if "-" in obj.folio: - page = obj.folio.split("-")[0] if "–" in obj.folio: page = obj.folio.split("–")[0] - if page: - if match := NUMBER.match(page): - page = match["number"] - if page.endswith("v") or page.endswith("r"): - page = page[:-1] + suffix = "" + if page.endswith("v"): + suffix = "v" + pagenr = page[:-1] + if page.endswith("r"): + suffix = "r" + pagenr = page[:-1] try: - page = int(page) - page = f"{page:03d}" + pagenr = int(pagenr) + page = f"{pagenr:03d}" except Exception: pass + page += suffix if page: matches = [scanfile for scanfile in iiif_titles()[title] if page in scanfile] if matches: