diff options
author | nea <romangraef@gmail.com> | 2022-11-22 01:09:59 +0100 |
---|---|---|
committer | nea <romangraef@gmail.com> | 2022-11-22 01:09:59 +0100 |
commit | aebb89c8c0e002aeb9306c1a859a679c013e7375 (patch) | |
tree | 2d42a533a4f81d4a1f9265e2f021b72e1d531c61 /sbdata | |
parent | aeac71aac6006ddb1e09e7d4990d9af8a4203325 (diff) | |
download | sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.gz sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.bz2 sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.zip |
boooo, jani, booo
Diffstat (limited to 'sbdata')
-rw-r--r-- | sbdata/repo.py | 12 | ||||
-rw-r--r-- | sbdata/tasks/find_kat_recipes.py | 4 |
2 files changed, 14 insertions, 2 deletions
diff --git a/sbdata/repo.py b/sbdata/repo.py index b57062b..77568d7 100644 --- a/sbdata/repo.py +++ b/sbdata/repo.py @@ -1,3 +1,4 @@ +import collections import dataclasses import json import os @@ -46,6 +47,17 @@ def find_item_by_name(name: str) -> typing.Optional[Item]: return None +def save_modified_file(file: pathlib.Path, new_json: dict): + d: collections.OrderedDict = json.loads(file.read_text(), object_pairs_hook=lambda x: collections.OrderedDict(x)) + for k, v in new_json.items(): + d[k] = v + for k in d.keys(): + if k not in new_json.keys(): + del d[k] + file.write_text(json + .dumps(d, sort_keys=False, indent=2, ensure_ascii=False)) + + def load_items(): item_dir = repo_dir / 'items' for item in item_dir.iterdir(): diff --git a/sbdata/tasks/find_kat_recipes.py b/sbdata/tasks/find_kat_recipes.py index 1546fa4..bc707f8 100644 --- a/sbdata/tasks/find_kat_recipes.py +++ b/sbdata/tasks/find_kat_recipes.py @@ -2,7 +2,7 @@ import json import mwparserfromhell.nodes -from sbdata.repo import find_item_by_name, item_list, Item +from sbdata.repo import find_item_by_name, item_list, Item, save_modified_file from sbdata.task import register_task, Arguments from sbdata.wiki import get_wiki_sources_by_title @@ -55,7 +55,7 @@ def analyze_pet(itemid: str): output=f'{itemid};{rarity_before_idx + 1}', items=[f'{x[0].internalname}:{str(x[1])}' for x in mats] )] + [r for r in itemjson.get('recipes', []) if r.get('type') != 'katgrade'] - itemfile.write_text(json.dumps(itemjson, indent=2, sort_keys=True).replace('\\u00a7', '\u00a7') + "\n") + save_modified_file(itemfile, itemjson) break |