Warning: session_start(): open(/var/lib/php/sessions/sess_e40f3c4o84b6vkkdenjj8ma0ma, 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 StatementFulfillments > DynObjectTable {
transient ReliableSingleThread rstSearch = dm_rst(this, r search);
transient Flag cancel;
transient GazelleContextCache_v2 contextCache;
start {
set fieldsInOrder;
addCountToName();
print("Making cache");
time "Made cache" {
contextCache = new GazelleContextCache_v2(this);
contextCache.grabRules = func -> L> { dm_gazelle_rulesOnFacts() };
ownResource(contextCache.listenToMessages());
contextCache.fill();
}
dm_vmBus_onMessage_q('newDiscordLine, voidfunc(O line) {
new L list;
gazelle_gatherFulfillments(ll(dm_discord_importLine(line)), list, maxEntries := 100);
addAll(list);
});
dm_vmBus_onMessage('gazelleRuleCreated, rstSearch); // TODO: optimize
}
visualize {
ret withCenteredButtons(super.visualize(), "Search Chat", rstSearch);
}
void search {
new Flag cancel;
this.cancel = cancel;
new L list;
// "john doe is a guy"
L lines = dm_discord_allLines();
print("Scanning " + n2(lines, "line"));
gazelle_gatherFulfillments(lines, list, maxEntries := 1000, +cancel);
print("Scan yielded " + n2(list, "entry", "entries"));
setList(list);
}
// API
L entriesForRule(S ruleID) {
ret filterWhere(list(), rule := ruleID);
}
L entriesForContext(S context) {
ret filterWhere(list(), +context);
}
}