!7
sS html(S uri, SS params) {
if (!webAuthed()) {
S editPW = trim(loadSecretTextFile("#1002192", "edit-pw"));
if (empty(editPW)) ret "No special password set and you're not master-authed";
if (!eq(params.get("pw"), editPW)) ret "No password, bugger :)";
}
S botID = params.get("bot");
if (nempty(params.get("clear"))) {
clearPrintLog(botID);
ret hrefreshWithParams(myLink_nonRaw("/"), bot := botID);
}
StringBuffer buf;
if (nempty(botID)) {
O bot = getBot(botID);
buf = (StringBuffer) getOpt(bot, "local_log");
print("1002241: Bot ID = " + botID + ", bot: " + bot + ", buf: " + (buf != null));
} else
buf = (StringBuffer) get(mainBot, "print_log");
if (buf == null) ret "Bot not found";
int size = buf.length();
ret htag("p", )
+ hform(p("Log size: " + size + " " + hsubmit("Clear") +
hhidden("bot", botID) + hhidden("clear", "1")), method := "POST")
+ htag("pre", htmlencode(buf));
}
answer {
if "print log size" {
StringBuffer buf = cast get(mainBot, "print_log");
ret str(buf.length());
}
if (!webAuthed()) ret null;
if "clear print log" {
ret "OK, cleared " + clearPrintLog(null) + " characters";
}
}
static int clearPrintLog(S botID) {
O bot = nempty(botID) ? getBot(botID) : mainBot;
StringBuffer buf = cast get(bot, "local_log");
int len = buf.length();
buf.setLength(0);
print("Buffer of " + botID + ": " + identityHashCode(buf) + ", " + len);
ret len;
}