Warning: session_start(): open(/var/lib/php/sessions/sess_qpkbvbb6d1mkmdbsf670ievgjv, 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 Monkey > DynDiscordHopper {
switchable S myName = "Monkey";
transient PKIKeyPair keys;
start {
keys = keyPairForProgram();
dm_vmBus_onMessage_q('discordGuildJoin, voidfunc(Map map) {
ret unless map.get('module) == module();
postInChannel(preferredChannelID, "I sense a joiner");
});
dm_vmBus_onMessage_q('discordGuildLeave, voidfunc(Map map) {
ret unless map.get('module) == module();
O user = rcall getUser(map.get('event));
S name = cast rcall getName(user);
postInChannel(preferredChannelID, nempty(name) ? name + " just left us" : "I sense a leaver");
});
}
@Override S answer(S input, Map map) {
ret mapEachLine_tlft_nempties(input, s -> {
new Matches m;
if "what's your name" ret myName;
if (swic_trim(s, "!power ", m)) {
ret or2(joinWithSpacedPlus(ai_powerWordsExpand(agiBlue_parsedPowerWords(), tok_splitAtPlus(m.rest()))), "No results");
}
try answer super.answer(s, map);
//try answer agiBlue_getAnswer(s);
try answer agiBlue_lookup(s, 'answer , /*'is, 'means*/);
if (flexMatchIC("what does * mean", s, m))
try answer agiBlue_lookup($1, 'means);
if (contains(s, "..."))
try answer random(listMinusElementIC(s, (LS) collect q(jsonDecodeList(loadPageWithParams("http://agi.blue/bot/allPagesContainingRegexp", q := "^" + ellipsisToDotStarRegexp(s) + "$", max := 10)))));
T3S triple = agiBlue_parseTriple(s);
if (!any isDollarVar(tripleToList(triple))) {
agiBot_postSignedEntry(keys, triple);
ret "Stored. <" + agiBlue_linkForPhrase(triple.a) + ">";
}
null;
});
}
}