Warning: session_start(): open(/var/lib/php/sessions/sess_qkmjrrvofhlne10pafdvg2ej8e, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!752
// TODO: When in a dialog, this should be prioritized by dispatcher
static new Map statusMap; // key = dialog id
p {
load("statusMap");
}
static abstract class Status {
abstract S answer(S s);
}
static class AgainThis extends Status {
S q;
*() {}
*(S *q) {}
S answer(S s) {
status(null); // always forget question after one line
if (isYes(s)) exceptionToUser {
ret quote(q) + " >> " + askSelf(q);
} else if (isNo(s))
ret "OK";
null;
}
}
static void status(Status s) {
if (s == null)
statusMap.remove(getDialogID());
else
statusMap.put(getDialogID(), s);
save("statusMap");
}
answer {
if "again" {
Map last = last(getDialog());
if (last == null)
ret "Again what?";
else {
S q = getString(last, "question");
status(new AgainThis(q));
ret "Again this? >> " + q;
}
}
Status status = statusMap.get(getDialogID());
if (status != null)
ret status.answer(s);
}