feat: implement gzip compression for /spoolman route response
This commit is contained in:
parent
75fe6b55ad
commit
3ec23a9f79
@ -218,8 +218,31 @@ void setupWebserver(AsyncWebServer &server) {
|
||||
// Route für Spoolman Setting
|
||||
server.on("/spoolman", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
Serial.println("Anfrage für /spoolman erhalten");
|
||||
String html = loadHtmlWithHeader("/spoolman.html");
|
||||
html.replace("{{spoolmanUrl}}", spoolmanUrl);
|
||||
|
||||
// Zuerst die gz-Datei laden
|
||||
if (!SPIFFS.exists("/spoolman.html.gz")) {
|
||||
request->send(404, "text/plain", "File not found");
|
||||
return;
|
||||
}
|
||||
|
||||
// Datei öffnen und in einen Puffer laden
|
||||
File file = SPIFFS.open("/spoolman.html.gz", "r");
|
||||
size_t fileSize = file.size();
|
||||
uint8_t *gzippedContent = new uint8_t[fileSize];
|
||||
file.read(gzippedContent, fileSize);
|
||||
file.close();
|
||||
|
||||
// Entpacken des gzippedContent in einen String
|
||||
String html;
|
||||
// TODO: Hier muss der gzippedContent entpackt werden
|
||||
// Dies erfordert eine zusätzliche Bibliothek wie zlib
|
||||
|
||||
// Ersetzungen vornehmen
|
||||
String urlToReplace = spoolmanUrl;
|
||||
if (urlToReplace.length() == 0) {
|
||||
urlToReplace = "";
|
||||
}
|
||||
html.replace("{{spoolmanUrl}}", urlToReplace);
|
||||
|
||||
JsonDocument doc;
|
||||
if (loadJsonValue("/bambu_credentials.json", doc) && doc.containsKey("bambu_ip")) {
|
||||
@ -235,7 +258,14 @@ void setupWebserver(AsyncWebServer &server) {
|
||||
html.replace("{{bambuCode}}", bambuCode ? bambuCode : "");
|
||||
}
|
||||
|
||||
request->send(200, "text/html", html);
|
||||
// Komprimierte Antwort senden
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", html.c_str());
|
||||
response->addHeader("Content-Encoding", "gzip");
|
||||
response->addHeader("Cache-Control", CACHE_CONTROL);
|
||||
request->send(response);
|
||||
|
||||
// Speicher freigeben
|
||||
delete[] gzippedContent;
|
||||
});
|
||||
|
||||
// Route für das Überprüfen der Spoolman-Instanz
|
||||
|
Loading…
x
Reference in New Issue
Block a user