diff options
Diffstat (limited to 'parsers/caves.py')
-rw-r--r-- | parsers/caves.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/parsers/caves.py b/parsers/caves.py index 25b1743..db1b949 100644 --- a/parsers/caves.py +++ b/parsers/caves.py @@ -151,7 +151,7 @@ def create_new_cave(svxpath, svxid=None, msg=None): urltest = Cave.objects.filter(url=url) if urltest: - message = f" ! Cave {urltest[0]} already exists with this url {url}. Can't create new cave {slug} from {svxpath} " + message = f" ! Cave {urltest[0]} already exists with this url {url}. Can't create new cave {areacode}-{caveid} from {svxpath} " DataIssue.objects.create(parser="caves", message=message, url=url) print(message) return urltest[0] @@ -493,16 +493,19 @@ def read_entrance(filename, ent=None): print(message) # New system 2024, create the Cave object when parsing Entrances, not Caves - cave = make_cave(caveslug_fn) - - # try: - # cs = CaveSlug.objects.update_or_create(cave=cave, slug=caveslug_fn, primary=True) - # except Exception as ex: - # #raise - # # This fails to do an update! It just crashes.. to be fixed - # message = f" ! Entrances: CaveSlug {cave} update/create failure : {caveslug_fn}, skipping cave_data file {filename} with exception\nException: {ex.__class__}" - # DataIssue.objects.create(parser="caves", message=message, url=context) - # print(message) + # can't use alias lookup as caves not loaded yet. + cave_data_file = Path(CAVEDESCRIPTIONS) / f"{caveslug_fn}.html" + if cave_data_file.is_file(): + cave = make_cave(caveslug_fn) + else: + message = f' ! ENTRANCE without matching CAVE cave_data/{caveslug_fn}.html in "entrance_data/{filename}". ' + for cslug in [caveslug_fn.lower(), caveslug_fn.upper()]: + cave_data_file = Path(CAVEDESCRIPTIONS) / f"{cslug}.html" + if cave_data_file.is_file(): + cave = make_cave(cslug) + message = f' ! ENTRANCE BAD upper/lower case cave_data/{caveslug_fn}.html in "entrance_data/{filename}". ' + DataIssue.objects.create(parser="entrances", message=message, url=ent_edit_url) + print(message) entrancecontentslist = getXML(contents, "entrance", maxItems=1, context=context) if len(entrancecontentslist) != 1: |