mirror of
https://github.com/SunsetMkt/Akebi-GC.git
synced 2025-09-19 20:16:01 +08:00
We rise from the ashes
This commit is contained in:
85
cheat-library/res/scripts/load_map_data.py
Normal file
85
cheat-library/res/scripts/load_map_data.py
Normal file
@ -0,0 +1,85 @@
|
||||
import requests
|
||||
import json
|
||||
import re
|
||||
|
||||
# Reading api
|
||||
with open("map_api.txt", "r") as map_api_file:
|
||||
api_list = []
|
||||
for line in map_api_file.readlines():
|
||||
name, address = line.split()
|
||||
api_list.append((name, address))
|
||||
|
||||
# Getting points data
|
||||
points_messages = []
|
||||
for (name, address) in api_list:
|
||||
r = requests.get(address)
|
||||
if r.status_code != 200:
|
||||
print(f"Failed load points data for {name}")
|
||||
continue
|
||||
|
||||
points_messages.append((name, json.loads(r.content.decode())))
|
||||
|
||||
# Refactor data to our format
|
||||
refactored_data = {}
|
||||
for (name, message) in points_messages:
|
||||
label_list = message["data"]["label_list"]
|
||||
point_list = message["data"]["point_list"]
|
||||
|
||||
label_map = {}
|
||||
for label in label_list:
|
||||
label_map[label["id"]] = label
|
||||
|
||||
data = {}
|
||||
for point in point_list:
|
||||
label_id = point["label_id"]
|
||||
if label_id not in data:
|
||||
label = label_map[label_id]
|
||||
clear_name = re.sub(r"[^\w\d_]", "", label["name"])
|
||||
data[label_id] = {
|
||||
"name": label["name"],
|
||||
"clear_name": clear_name,
|
||||
"points": [],
|
||||
"icon": label["icon"]
|
||||
}
|
||||
|
||||
points = data[label_id]["points"]
|
||||
points.append({
|
||||
"id": point["id"],
|
||||
"x_pos": point["x_pos"],
|
||||
"y_pos": point["y_pos"]
|
||||
})
|
||||
|
||||
refactored_data[name] = {
|
||||
"labels": data
|
||||
}
|
||||
|
||||
# Getting categories data
|
||||
categories_messages = []
|
||||
for (name, address) in api_list:
|
||||
r = requests.get(address.replace("list", "tree").replace("point", "label"))
|
||||
if r.status_code != 200:
|
||||
print(f"Failed load categories data for {name}")
|
||||
continue
|
||||
|
||||
categories_messages.append((name, json.loads(r.content.decode())))
|
||||
|
||||
# Refactor data to our format
|
||||
for (name, message) in categories_messages:
|
||||
categories_list = message["data"]["tree"]
|
||||
|
||||
data = []
|
||||
for category in categories_list:
|
||||
data.append(
|
||||
{
|
||||
"id": category["id"],
|
||||
"name": category["name"],
|
||||
"children": [child["id"] for child in category["children"]]
|
||||
}
|
||||
)
|
||||
|
||||
refactored_data[name]["categories"] = data
|
||||
|
||||
# Writing refactored data to json files
|
||||
for (name, data) in refactored_data.items():
|
||||
with open(f"../{name}.json", "w") as out_json_file:
|
||||
json.dump(data, out_json_file, indent=4)
|
Reference in New Issue
Block a user