Handle response

This commit is contained in:
SemvdH
2025-11-17 23:37:44 +01:00
parent 211305e7c9
commit c28cc937bd
2 changed files with 58 additions and 36 deletions

View File

@@ -117,40 +117,64 @@ class Handler(BaseHTTPRequestHandler):
def handle_POST_path(self):
if (self.path.startswith("/changetrack/")):
parts = self.path.split("/")
parts = [p for p in parts if p] # remove empty
track, config = self.extract_track_and_config(parts, 1)
print(f"Changing track to '{track}' with config '{config}'")
success, message = change_track(track, config)
if success:
sysbus = dbus.SystemBus()
systemd1 = sysbus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1')
manager = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Manager')
job = manager.RestartUnit('assetto-corsa-server.service', 'replace')
if job:
print("Successfully restarted assetto-corsa-server.service")
else:
print("Failed to restart assetto-corsa-server.service")
success = False
message = "Failed to restart assetto-corsa-server.service"
print(message)
if success:
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
response = {"status": "success", "message": message}
self.wfile.write(json.dumps(response).encode())
return True
else:
self.send_response(400)
self.send_header("Content-type", "application/json")
self.end_headers()
response = {"status": "error", "message": message}
self.wfile.write(json.dumps(response).encode())
return True
return self.handle_post_change_track()
if (self.path.startswith("/changecar/")):
return self.handle_post_change_car()
return False
def handle_post_change_track(self):
parts = self.path.split("/")
parts = [p for p in parts if p] # remove empty
track, config = self.extract_track_and_config(parts, 1)
print(f"Changing track to '{track}' with config '{config}'")
success, message = change_track(track, config)
if success:
sysbus = dbus.SystemBus()
systemd1 = sysbus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1')
manager = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Manager')
job = manager.RestartUnit('assetto-corsa-server.service', 'replace')
if job:
print("Successfully restarted assetto-corsa-server.service")
else:
print("Failed to restart assetto-corsa-server.service")
success = False
message = "Failed to restart assetto-corsa-server.service"
print(message)
if success:
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
response = {"status": "success", "message": message}
self.wfile.write(json.dumps(response).encode())
else:
self.send_response(400)
self.send_header("Content-type", "application/json")
self.end_headers()
response = {"status": "error", "message": message}
self.wfile.write(json.dumps(response).encode())
return True
def handle_post_change_car(self):
length = int(self.headers.get("Content-Length", 0))
# 2. Lees de body
body = self.rfile.read(length).decode("utf-8")
# 3. Parse JSON
import json
try:
data = json.loads(body)
except json.JSONDecodeError:
self.send_response(400)
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(b'{"error":"invalid json"}')
return
print("Received cars:", data)
def send_image(self, img_path: str):
if os.path.exists(img_path):
self.send_response(200)

View File

@@ -89,7 +89,6 @@
applyCarsBtn.addEventListener("click", applyCars);
function applyCars() {
// Zoek alle car blocks
const blocks = document.querySelectorAll(".car-block");
let cars = [];
@@ -98,8 +97,8 @@
const carSelect = block.querySelector(".car-select");
const skinSelect = block.querySelector(".skin-select");
const carName = carSelect?.value || null;
const skinName = skinSelect?.value || null;
const carName = carSelect?.value || "";
const skinName = skinSelect?.value || "";
if (carName) {
cars.push({
@@ -109,7 +108,6 @@
}
});
// Payload klaar
const payload = { cars };
console.log("Sending cars:", payload);