diff options
-rw-r--r-- | parsers/caves.py | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/parsers/caves.py b/parsers/caves.py index f063731..b8430ea 100644 --- a/parsers/caves.py +++ b/parsers/caves.py @@ -474,10 +474,11 @@ def read_entrance(filename, ent=None): context = filename # Derive the letter, entrance slug and cave slug from the filename + # only use lower case, even if the filename is uppercase. entslug_fn = filename[:-5] # remove .html - if entslug_fn[-1] in LETTERS: + if entslug_fn[-1].lower() in LETTERS: caveslug_fn = entslug_fn[:-1] - letter_fn = entslug_fn[-1] + letter_fn = entslug_fn[-1].lower() else: caveslug_fn = entslug_fn letter_fn = "" @@ -654,19 +655,12 @@ def read_cave(filename, mvf=None, cave=None): if len(eslugs) < 1: print(f"TYPO IN cave_data file <entrance> tag contents\n <entrance> contents: {e}\n {eslugs=}") eslug = eslugs[0] - # if eslug.endswith(('a','b','c','d','e','f')): - # print(f"! Entrance {eslug}") - # if eslug.endswith('a b'): - # message = f' - Entrance has weird name slug:"{eslug}" cave:"{cave}" caveslug:"{slug}" filename:"cave_data/{filename}"' - # DataIssue.objects.create(parser="xEntrances", message=message, url=f"{cave.url}_cave_edit/") - # print(message) - letter = getXML(e, "letter", maxItems=1, context=context)[0] if len(entrances) > 1 and letter =="": # Usually the second entrance is 'b', but the first is still unlettered. So probably 'a' letter = eslug[-1].lower() - if letter.lower() not in list(string.ascii_lowercase): + if letter.lower() not in LETTERS: letter = "a" message = f"- Warning - Empty 'letter' field for '{eslug}' in multiple-entrance cave '{cave}', setting to {letter}." #eurl = f"{cave.url}_cave_edit/" @@ -686,12 +680,29 @@ def read_cave(filename, mvf=None, cave=None): else: # print(f"eslug {eslug} looking up entrance ") try: + entrance_count = Entrance.objects.filter(slug=eslug).count() + except: + message = f"! Fail entrance count {eslug}. {entrance_count=}" + print(message) + if entrance_count == 1: entrance = Entrance.objects.get(slug=eslug) entrances_xslug[eslug] = entrance - except: - message = f"! Fail entrance loading {eslug} /entrance_data/{eslug} file does not exist or loading it from {filename} failed." - DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}_cave_edit/") - print(message) + else: + message = f"! Entrance count {entrance_count=} for {eslug}. " + print(message) + eslug = eslug[:-1] + eslug[-1].upper() + entrance_count = Entrance.objects.filter(slug=eslug).count() + message = f"! Entrance count {entrance_count=} for uppercase variant {eslug}. " + print(message) + if entrance_count == 1: + entrance = Entrance.objects.get(slug=eslug) + entrances_xslug[eslug] = entrance + message = f"! Warning entrance loading {eslug} only exists as upper case variant " + DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}_cave_edit/") + else: + message = f"! Fail entrance loading {eslug}. Probably /entrance_data/{eslug} file does not exist or loading it from {filename} failed." + DataIssue.objects.create(parser="entrances", message=message, url=f"{cave.url}_cave_edit/") + print(message) print(e) return |