Uses 911K of libraries. Click here for Pure Java version (17436L/101K).
1 | !7 |
2 | |
3 | cmodule StatementFulfillments > DynObjectTable<GazelleFulfillment> {
|
4 | transient ReliableSingleThread rstSearch = dm_rst(this, r search); |
5 | transient Flag cancel; |
6 | |
7 | transient GazelleContextCache_v2 contextCache; |
8 | |
9 | start {
|
10 | set fieldsInOrder; |
11 | addCountToName(); |
12 | set withSearcher; |
13 | |
14 | print("Making cache");
|
15 | time "Made cache" {
|
16 | contextCache = new GazelleContextCache_v2(this); |
17 | contextCache.grabRules = func -> L<T3<S>> { dm_gazelle_rulesOnFacts() };
|
18 | ownResource(contextCache.listenToMessages()); |
19 | contextCache.fill(); |
20 | } |
21 | |
22 | dm_vmBus_onMessage_q('newDiscordLine, voidfunc(O line) {
|
23 | new L<GazelleFulfillment> list; |
24 | gazelle_gatherFulfillments(ll(dm_discord_importLine(line)), list, maxEntries := 100); |
25 | addAll(list); |
26 | }); |
27 | |
28 | dm_vmBus_onMessage('gazelleRuleCreated, rstSearch); // TODO: optimize
|
29 | } |
30 | |
31 | visualize {
|
32 | ret withCenteredButtons(super.visualize(), "Search Chat", rstSearch); |
33 | } |
34 | |
35 | void search {
|
36 | new Flag cancel; |
37 | this.cancel = cancel; |
38 | new L<GazelleFulfillment> list; |
39 | |
40 | // "john doe is a guy" |
41 | L<GazelleLine> lines = dm_discord_allLines(); |
42 | print("Scanning " + n2(lines, "line"));
|
43 | |
44 | gazelle_gatherFulfillments(lines, list, maxEntries := 1000, +cancel, ctx := contextCache!); |
45 | |
46 | print("Scan yielded " + n2(list, "entry", "entries"));
|
47 | setList(list); |
48 | } |
49 | |
50 | // API |
51 | |
52 | L<GazelleFulfillment> entriesForRule(S ruleID) {
|
53 | ret filterWhere(list(), rule := ruleID); |
54 | } |
55 | |
56 | L<GazelleFulfillment> entriesForContext(S context) {
|
57 | ret filterWhere(list(), +context); |
58 | } |
59 | |
60 | void triggerSearch {
|
61 | rstSearch.trigger(); |
62 | } |
63 | } |
download show line numbers debug dex old transpilations
Travelled to 8 computer(s): bhatertpkbcr, cfunsshuasjs, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, whxojlpjdney
No comments. add comment
| Snippet ID: | #1021745 |
| Snippet name: | Gazelle: Statement Fulfillments (OLD, use v2 instead!) |
| Eternal ID of this version: | #1021745/37 |
| Text MD5: | f967b907b011508da4a411c237e06c73 |
| Transpilation MD5: | e8b3d91c380f3c59673be363125295e9 |
| Author: | stefan |
| Category: | javax / a.i. |
| Type: | JavaX source code (Dynamic Module) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2019-03-12 21:41:09 |
| Source code size: | 1722 bytes / 63 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 643 / 1650 |
| Version history: | 36 change(s) |
| Referenced in: | [show references] |