!7 !include once #1028763 // helper for HttpFromFileSystem set flag NoNanoHTTPD. cmodule ServeDir > DynPrintLog { !include #1029545 // API for Eleu switchable File dir; O html(virtual Request request) { S uri = cast get(request, 'uri); HttpFromFileSystem server = new(dir); server.serveFile = f -> { if (fileHasExtension(f, ".html")) ret rewriteHTML(loadTextFile(f)); ret server.serveFile_base(f); }; ret server.serve(uri); } S rewriteHTML(S html) { LS tok = htmlTok(html); // drop dummy chat bot CSS listSet(tok, indexOf(tok, [[]]), ""); // drop dummy chat bot int iOpening = indexOf(tok, [[
]]); if (iOpening >= 0) { set flag findClosingTag_debug. int iClosing = findClosingTag(tok, iOpening); clearTokens(tok, iOpening, iClosing+1); // add real chat bot int iEndOfBody = indexOfIC(tok, ""); if (iEndOfBody >= 0) tokAppend(tok, iEndOfBody-1, hscriptsrc("https://gaippbots.com/bot/script")); } ret join(tok); } }