summaryrefslogtreecommitdiff
path: root/pb2e.py
diff options
context:
space:
mode:
Diffstat (limited to 'pb2e.py')
-rw-r--r--pb2e.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/pb2e.py b/pb2e.py
new file mode 100644
index 0000000..f1b3911
--- /dev/null
+++ b/pb2e.py
@@ -0,0 +1,33 @@
+import json
+import requests
+
+request_headers = {
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
+ "Accept-Encoding": "gzip, deflate, br",
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0"
+}
+
+url = 'https://pathbuilder2e.com/json.php'
+cache_path = 'characters'
+
+def download_character(pfb_id, name=None):
+ r = requests.get(url, params={"id": pfb_id}, headers=request_headers)
+ r.raise_for_status()
+ res = r.json()
+ if not res['success'] or 'build' not in res:
+ raise RuntimeError("Unsuccessful build", res)
+ res = res['build']
+ res['pfb_id'] = pfb_id
+ if name is None:
+ name = res["name"]
+ else:
+ res["name"] = name
+ with open(f"{cache_path}/{name}.json", "w", encoding="utf8") as out_file:
+ json.dump(res, out_file, indent=2, ensure_ascii=False)
+ return res
+
+
+def open_character(name):
+ with open(f"{cache_path}/{name}.json", "r", encoding="utf8") as js_file:
+ return json.load(js_file)
+