diff --git a/ac-server-scripts-api.py b/ac-server-scripts-api.py index a379399..0eee436 100644 --- a/ac-server-scripts-api.py +++ b/ac-server-scripts-api.py @@ -130,17 +130,9 @@ class Handler(BaseHTTPRequestHandler): 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) + success, message = restart_ac_server() + print(f"restart succeeded: {success}, {message}") + if success: self.send_response(200) self.send_header("Content-type", "application/json") @@ -168,6 +160,22 @@ class Handler(BaseHTTPRequestHandler): data = json.loads(body) print("Received cars:", data) success, message = update_cars(data.get("cars", [])) + if success: + success, message = restart_ac_server() + print(f"restart succeeded: {success}, {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 except json.JSONDecodeError: self.send_response(400) @@ -195,8 +203,15 @@ class Handler(BaseHTTPRequestHandler): return track, config - - +def restart_ac_server() -> tuple[bool, str]: + 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: + return True, "Successfully restarted assetto-corsa-server.service" + else: + return False, "Failed to restart assetto-corsa-server.service" server = HTTPServer(("0.0.0.0", 10303), Handler) print("Server running on port 10303")