Libraryless. Click here for Pure Java version (6379L/45K/142K).
!752 // Safe-for-everyone bots only!! static L<S> okToForwardTo = litlist("OK Collector Bot", "Leo Bot", "Identity Manager", "Who Is Online Bot", "I'm Jack's Identity Manager"); // May include the privileged bots. static Map<S, S> autoStartable = litmap( "Who Is Online Bot", "#1001768", "Reboot Bot", "#1001218", "OK Collector Bot", "#1001245", "Leo Bot", "#1001294", "Identity Manager", "#1001348", "I'm Jack's Identity Manager", "#1003170" ); static S masterKey; p { masterKey = loadSnippet("#1006007"); //readLocally("okToForwardTo"); Android3 a = new Android3("Public Comm Bot at " + getComputerID() + "."); a.publicOverride = true; a.useMultiPort = false; a.startPort = 4999; makeAndroid(a); } static synchronized S answer(S s) { new Matches m; if (match3("test", s)) return "test!"; // TODO: include a timestamp :) if (match3("signed *", s, m)) { S signed = m.unq(0); isSignedWithKey_verbose = true; if (!isSignedWithKey(signed, masterKey)) { print("masterKey: " + masterKey); ret "Sorry, bad signature."; } S line = unsign(signed); S answer = answerPrivileged(line); if (answer != null) ret answer; } if (match3("please forward to bot *: *", s, m)) { S bot = unquote(m.m[0]); S line = unquote(m.m[1]); if (!okToForwardTo.contains(bot)) return "Can't forward to this bot, sorry."; if (!lineOK(bot, line)) return "Can't forward that line, sorry."; ret forwardTo(bot, line); } return null; } static S answerPrivileged(S s) { // privileged path after auth with master key - anything goes!! new Matches m; if (match3("please forward to bot *: *", s, m)) { S bot = unquote(m.m[0]); S line = unquote(m.m[1]); ret forwardTo(bot, line); } if (match3("please start program *", s, m)) { S progID = m.unq(0); nohupJavax(progID); ret "OK."; } if (match3("please restart program *", s, m)) { S progID = m.unq(0); restartProgramID(progID); ret "OK."; } if (match3("please start bot *", s, m)) { S botID = m.unq(0); startBot(botID); ret "OK."; } if (match3("please reboot", s)) { ret forwardTo("Reboot Bot", "Please reboot the machine."); } if (match3("list bots", s)) ret structure(fullBotScan()); ret null; } static boolean lineOK(S bot, S line) { return true; // OK Collector bot is not very dangerous... } static S forwardTo(S bot, S line) { S id = autoStartable.get(bot); if (id != null) startBot(bot, id); ret sendToLocalBotOpt(bot, line); }
Began life as a copy of #1001222
download show line numbers debug dex old transpilations
Travelled to 16 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, jtubtzbbkimh, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, teubizvjbppd, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1001248 |
Snippet name: | Public Comm Bot with forwarding (LIVE) |
Eternal ID of this version: | #1001248/1 |
Text MD5: | 786f95d48977d7a199586156648f8122 |
Transpilation MD5: | f51bf93da5c2a0ec4e798a46f9a4601f |
Author: | stefan |
Category: | javax |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-12-14 03:24:53 |
Source code size: | 2717 bytes / 110 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 790 / 1332 |
Referenced in: | [show references] |