Warning: session_start(): open(/var/lib/php/sessions/sess_h9jk13pd4o1g49ths4djpgsiq9, 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 GThingsLister > DynPrintLog {
// standard fields for a Gazelle module
S globalID = aGlobalID();
bool active = true;
// custom fields for this module
S ruleID = 'invcwuqfdjvuloyv; // take fulfillments from there
S varName = "toes";
LS thingsSaid = syncList();
LS thingsNotYetSaid;
// TODO: remove module on cleanup
start {
if (thingsNotYetSaid == null) {
thingsNotYetSaid = syncList();
//addAll(thingsNotYetSaid, "frogs", "shoes");
addNotNulls(thingsNotYetSaid, map(dm_gazelle_fulfillmentsForRule_imported(ruleID),
fulfillment -> mapGet(fulfillment.varMap(), varName)));
}
}
S giveMeOne() {
if (empty(thingsNotYetSaid)) {
dm_gazelle_stopThisModule();
ret "I don't know any more body parts...";
}
S s = removeRandom(thingsNotYetSaid);
thingsSaid.add(s);
ret s + "!";
}
S answer(S s) {
if (!active) null;
if "done|stop|gazelle stop|stop gazelle|thanks|thanks gazelle" {
dm_gazelle_stopThisModule();
ret "OK";
}
if "ok|cool|yes|good|next one please|yo|ack"
ret giveMeOne();
null;
}
S initialAnswer(O... _) {
S s = "I'll list body parts for you. Say \"done\" or \"stop\" to quit.\n";
if (empty(thingsNotYetSaid)) {
s += "Sadly, I don't know any body parts";
dm_gazelle_stopThisModule();
} else s += "Here is one: " + giveMeOne();
ret s;
}
}