Add script for dumping uniques and sets
This commit is contained in:
		
							
								
								
									
										59
									
								
								d2warehouse/contrib/uniques.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								d2warehouse/contrib/uniques.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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") | ||||||
		Reference in New Issue
	
	Block a user