aboutsummaryrefslogtreecommitdiff
path: root/sbdata
diff options
context:
space:
mode:
authornea <romangraef@gmail.com>2022-11-22 01:09:59 +0100
committernea <romangraef@gmail.com>2022-11-22 01:09:59 +0100
commitaebb89c8c0e002aeb9306c1a859a679c013e7375 (patch)
tree2d42a533a4f81d4a1f9265e2f021b72e1d531c61 /sbdata
parentaeac71aac6006ddb1e09e7d4990d9af8a4203325 (diff)
downloadsbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.gz
sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.tar.bz2
sbdata-aebb89c8c0e002aeb9306c1a859a679c013e7375.zip
boooo, jani, booo
Diffstat (limited to 'sbdata')
-rw-r--r--sbdata/repo.py12
-rw-r--r--sbdata/tasks/find_kat_recipes.py4
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