Warning: session_start(): open(/var/lib/php/sessions/sess_hr90o3t5esdkfa76kguk7ktrkl, 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
!7
sO listBot;
concept Translation { S in, out; }
static JList lCommands;
p {
magellan(); tt(); centerConsole(700, 500); listBot = run(#1009228); db();
if (isMainProgram()) { swing { addToWindowRight(consoleFrame(), withMargin(withCenteredTitle("Commands", lCommands = jlist()))); } updateCommandList(); botSleep(); }
}
synchronized answer {
translating: for (int safety = 0; safety < 10; safety++) {
// TRANSLATIONS MANAGEMENT
if "translations" ret struct(collectOrderedMap(list(Translation), 'in, 'out));
if "add translation: * *" {
Pair p = uniq2(Translation, in := $1);
cset(p.a, out := $2); updateCommandList();
ret p.b ? "OK, saved" : "OK, overwritten";
}
if "remove translation: *" { deleteConcepts(Translation, in := $1); updateCommandList(); ret "OK"; }
// TRY TRANSLATIONS
for (Translation t) if (match(t.in, s, m)) {
S translated = format(t.out, matchesToFormatArgs(m));
print("Translated: " + s + " => " + translated);
s = translated; continue translating;
}
break;
}
try answer callAnswerMethod(listBot, s); // forward verbatim
}
svoid updateCommandList { fillListWithStrings(lCommands, knownCommands()); }
static L knownCommands() {
ret concatLists((L) callOpt(listBot, 'knownCommands), findSupportedQuestionsInFunctions('answer), collect(list(Translation), 'in));
}