Uses 911K of libraries. Click here for Pure Java version (6526L/36K).
1  | !7  | 
2  | |
3  | cmodule CatEar > DynPrintLog {
 | 
4  | transient long timeout = 60000;  | 
5  | transient int interval = 50; // TODO: use blocking wait  | 
6  | int httpPort = 8082;  | 
7  | |
8  | S toSay;  | 
9  | LS inputLines = synchroList();  | 
10  | LS outgoingLines = synchroList();  | 
11  | |
12  |   start-thread {
 | 
13  | dm_vmBus_onMessage androidCatShouldSay(vf<S> say);  | 
14  |     ownResource(serveHttpFromFunction(httpPort, func(S uri, SS params) {
 | 
15  |       if (!webAuthed(params)) {
 | 
16  | if (eq(uri, "/poll"))  | 
17  | sleep(timeout);  | 
18  | ret "not authed";  | 
19  | }  | 
20  | |
21  |       S input = params.get('input);
 | 
22  |       if (nempty(input)) {
 | 
23  | add(inputLines, input);  | 
24  |         printWithTime("Got input: " + input);
 | 
25  |         vmBus_send('androidCatInput, module(), input);
 | 
26  | change();  | 
27  | }  | 
28  | |
29  | if (eq(uri, "/poll"))  | 
30  |         ret serveLongPoll(timeout, interval, func {
 | 
31  | LS l = getAndClearList(outgoingLines);  | 
32  | if (empty(l)) null;  | 
33  | for (S s : l)  | 
34  |             printWithTime("Served output: " + s);
 | 
35  | change();  | 
36  | ret lines_rtrim(l);  | 
37  | });  | 
38  | |
39  | ret "OK";  | 
40  | }));  | 
41  | }  | 
42  | |
43  |   void sayIt() {
 | 
44  | if (empty(toSay)) ret;  | 
45  | add(outgoingLines, toSay);  | 
46  | change();  | 
47  | }  | 
48  | |
49  | visual centerAndSouth(super,  | 
50  |     withMargin(dm_textFieldAndSubmit('toSay, 'sayIt)));
 | 
51  | |
52  | // API  | 
53  | |
54  |   void say(S s) enter {
 | 
55  | setField(toSay := s);  | 
56  | sayIt();  | 
57  | }  | 
58  | }  | 
Began life as a copy of #1014866
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, cfunsshuasjs, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1023280 | 
| Snippet name: | Android Controller (port 8082, control the cat on the phone, OLD version for single user) | 
| Eternal ID of this version: | #1023280/16 | 
| Text MD5: | 970edf592f0a58d4aeb30a163443eeaf | 
| Transpilation MD5: | 897564a112e59888e175db2dc5373bc8 | 
| Author: | stefan | 
| Category: | javax / web / a.i. / android | 
| Type: | JavaX source code (Dynamic Module) | 
| Public (visible to everyone): | Yes | 
| Archived (hidden from active list): | No | 
| Created/modified: | 2019-06-11 19:32:56 | 
| Source code size: | 1394 bytes / 58 lines | 
| Pitched / IR pitched: | No / No | 
| Views / Downloads: | 575 / 10085 | 
| Version history: | 15 change(s) | 
| Referenced in: | [show references] |