Uses 5909K of libraries. Click here for Pure Java version (9740L/51K).
1 | !7 |
2 | |
3 | cmodule ClustersBot extends DynTalkBot2<ClustersBot.ByServer> {
|
4 | start {
|
5 | makeByServer = () -> new ByServer; |
6 | useAGIBlueForDropPunctuation = false; |
7 | preprocessAtSelfToMyName = false; |
8 | } |
9 | |
10 | sclass Cluster {
|
11 | GlobalID globalID = aGlobalIDObject(); |
12 | Set<S> synonyms = ciSet(); |
13 | |
14 | *() {}
|
15 | *(S s) { synonyms.add(s); }
|
16 | } |
17 | |
18 | class ByServer extends DynTalkBot2.ByServer {
|
19 | new L<Cluster> clusters; |
20 | Cluster topic; |
21 | |
22 | L<Cluster> searchForCluster(S s) {
|
23 | ret filter(clusters, c -> contains(c.synonyms, s)); |
24 | } |
25 | |
26 | synchronized S processSimplifiedLine(S s, O... _) {
|
27 | try answer super.processSimplifiedLine(s, _); // adding authorized users etc. |
28 | |
29 | new Matches m; |
30 | |
31 | S sOld = s; |
32 | s = dropPrefixOrNull(myPrefix(), s); |
33 | if (s == null) {
|
34 | print("no got prefix: " + quote(myPrefix()) + " / " + quote(sOld));
|
35 | null; |
36 | } |
37 | |
38 | if (matchX2("do you know ...|name ...", s, m)) {
|
39 | L<Cluster> found = searchForCluster($1); |
40 | if (empty(found)) {
|
41 | topic = new Cluster($1); |
42 | clusters.add(topic); |
43 | change(); |
44 | ret "No I don't know " + $1; |
45 | } |
46 | topic = random(found); change(); |
47 | ret (l(found) > 1 ? "I know multiple. " : "") |
48 | + "You mean " + join(" = ", topic.synonyms) + "?";
|
49 | } |
50 | |
51 | if (matchX2("he is ...|she is ...|it is ...|he's ...|she's ...|it's ...|they are ...", s, m)) {
|
52 | if (topic == null) ret "Who is?"; |
53 | if (topic.synonyms.add($1)) {
|
54 | change(); |
55 | ret "Aha. " + join(" = ", topic.synonyms);
|
56 | } else |
57 | ret "Yup, I know"; |
58 | } |
59 | |
60 | if "number of clusters" ret l_str(clusters); |
61 | |
62 | if (eqic(s, "help")) |
63 | ret trim([[ |
64 | Help text will go here. |
65 | |
66 | [Bot made by https://BotCompany.de] |
67 | ]]).replace("@me", atSelf());
|
68 | |
69 | null; |
70 | } |
71 | } |
72 | } |
Began life as a copy of #1025290
download show line numbers debug dex old transpilations
Travelled to 6 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1025300 |
| Snippet name: | Clusters Bot v1 [as made in youtube.be/0gmwaqmjKhM] |
| Eternal ID of this version: | #1025300/1 |
| Text MD5: | 07df9b2582bec9aabeb18d9c01cc3ac0 |
| Transpilation MD5: | e2f17efadcf73c54771bcf38f1436363 |
| Author: | stefan |
| Category: | |
| Type: | JavaX source code (Dynamic Module) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2019-09-20 13:31:32 |
| Source code size: | 1955 bytes / 72 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 436 / 610 |
| Referenced in: | [show references] |