Warning: session_start(): open(/var/lib/php/sessions/sess_vrbfld8frq663fq6484er9i8a9, 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
// cmodule fails because of loadPageWithUserAgent
module GBot > DynDiscordHopper {
S myName = "GBot";
int defaultResults = 1;
Set syntaxes = synchroSet();
@Override S answer(S input, Map map) {
ret mapEachLine_tlft_nempties(input, s -> {
new Matches m;
s = simpleSpaces_noTok(s);
if (swic_trim(s, myName + ":", m))
ret doIt(m.rest());
if (swic_trim(s, myName + " default results:", m)) {
setField(defaultResults := parseInt(m.rest());
ret "OK, returning " + nResults(defaultResults) + " from now on";
}
if (eqic(s, myName + " default results"))
ret "I'm returning " + nResults(defaultResults) + " by default";
if (eqic(s, myName + " syntaxes"))
ret backtickQuote(lines_rtrim(elementPlusList(myName + ": ...", syntaxes)));
if (swic_trim(s, myName + " new syntax:", m)) {
S syntax = unquote(m.rest());
if (!endsWithEllipsis(syntax))
ret "Shouldn't this end with \"...\"? >> " + syntax;
syntax = trim(dropSuffix("...", syntax)) + " ...";
if (!syntaxes.add(syntax)) ret "I already know that syntax!";
change();
ret "Syntax added! You can try: " + backtickQuote(replaceSuffix("...", randomThingToGoogle(), syntax));
}
if (swic_trim(s, myName + " drop syntax:", m)) {
if (!syntaxes.remove(syntax)) ret "Syntax not found";
change();
ret "Syntax removed!";
}
if (ellipsisToDotPlusRegexpIC_matchAny(syntaxes, s, m))
ret doIt(m.rest());
null;
});
}
S doIt(S query) {
LS l = regexpICFullMatch_groups("(\\d+) results? for[ :](.+)", query);
int results = defaultResults;
if (l != null) {
results = parseInt(first(l));
query = unquote(trim(last(l)));
}
ret discord_google(query, +results);
}
S randomThingToGoogle() {
ret "Why are penguins black and white?";
}
}