From a792c35f6ee3b37ecb6fe1692f81574509728cae Mon Sep 17 00:00:00 2001 From: Supremist Date: Tue, 28 Oct 2025 00:30:11 +0200 Subject: Add character import from pathbuilder2e site --- pb2e.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 pb2e.py (limited to 'pb2e.py') 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) + -- cgit v1.2.3