def run(): data = get_bestiaries_from_web() data = parse_copies(data) data = srdfilter(data) data = parse_ac(data) rendered = monster_render(data) rendered = recursive_tag(rendered) out = parse_attacks(rendered) dump(out, 'bestiary.json') diff('bestiary.json')
def run(): data = get_classes_from_web() data = filter_ignored(data) data = srdfilter(data) data = recursive_tag(data) data = fix_subclass_dupes(data) classfeats = parse_classfeats(data) classfeats.extend(parse_invocations()) dump(data, 'classes.json') dump(classfeats, 'classfeats.json') diff('classes.json') diff('classfeats.json')
def prerender(data): for item in data: if 'entries' in item: item['desc'] = render(item['entries']) del item['entries'] else: item['desc'] = "" if 'additionalEntries' in item: item['desc'] += f"\n\n{render(item['additionalEntries'])}" item['desc'] = item['desc'].strip() for k, v in item.items(): item[k] = recursive_tag(v) return data
def parse(data): processed = [] for spell in data: log.info(f"Parsing {spell['name']}...") parsetime(spell) parserange(spell) parsecomponents(spell) parseduration(spell) parseclasses(spell) srdfilter(spell) ritual = spell.get('meta', {}).get('ritual', False) desc = render(spell['entries']) if 'entriesHigherLevel' in spell: higherlevels = render(spell['entriesHigherLevel']) \ .replace("**At Higher Levels**: ", "") else: higherlevels = None if NEW_AUTOMATION: automation = get_automation(spell) else: automation = get_automation_from_old(spell) newspell = { "name": spell['name'], "level": spell['level'], "school": spell['school'], "casttime": spell['time'], "range": spell['range'], "components": spell['components'], "duration": spell['duration'], "description": desc, "classes": spell['classes'], "subclasses": spell['subclasses'], "ritual": ritual, "higherlevels": higherlevels, "source": spell['source'], "page": spell.get('page', '?'), "concentration": spell['concentration'], "automation": automation, "srd": spell['srd'] } processed.append(recursive_tag(newspell)) processed = ensure_ml_order(processed) return processed