diff --git a/d2warehouse/contrib/uniques.py b/d2warehouse/contrib/uniques.py new file mode 100644 index 0000000..c2e41b8 --- /dev/null +++ b/d2warehouse/contrib/uniques.py @@ -0,0 +1,59 @@ +import csv +import json +import os +import sys + +path = sys.argv[1] if len(sys.argv) >= 2 else "." + +category = "Base" +setitems = {} +with open(os.path.join(path, "setitems.txt")) as f: + dr = csv.DictReader(f, delimiter="\t") + for row in dr: + if row["index"] == "Expansion": + category = row["index"] + continue + setitems[row["*ID"]] = { + "name": row["index"], + "set": row["set"], + "itembase": row["item"], + "req_lvl": int(row["lvl req"]), + "ilvl": int(row["lvl"]), + "rarity": int(row["rarity"]), + "category": category, + } + +category = "Base" +uniqueitems = {} +with open(os.path.join(path, "uniqueitems.txt")) as f: + dr = csv.DictReader(f, delimiter="\t") + for row in dr: + if row["index"] in [ + "Expansion", + "Armor", + "Elite Uniques", + "Rings", + "Class Specific", + ]: + category = row["index"] + continue + if row["*ID"] == "288": + category = "Patch 1.10+" + if len(row["lvl req"]) == 0: + continue # deleted uniques + uniqueitems[row["*ID"]] = { + "name": row["index"], + "itembase": row["code"], + "req_lvl": int(row["lvl req"]), + "ilvl": int(row["lvl"]), + "rarity": int(row["rarity"]), + "category": category, + } + +with open("uniques.json", "w", newline="\n") as f: + json.dump(uniqueitems, f, indent=4) + f.write("\n") + +with open("sets.json", "w", newline="\n") as f: + json.dump(setitems, f, indent=4) + f.write("\n")