!7 !include #1022367 // car bot functions !include #1022384 // Slack // no cmodule because of doPost / loadPage module oibot > DynPrintLogAndEnabled { transient new ThreadLocal msgJSON; transient RTMClient rtm; bool debug; start { if (!enabled) ret; dm_registerAs('slackModule); loadSlackToken(); if (nempty(slackToken)) ret with startSlack(); inputText("Please enter Slack bot token", voidfunc(S s) { saveTextFile(slackTokenFile(), s); startSlack(); }); } void startSlack enter { ownResource(rtm = initSlackBot(this)); } void answer(S s, O... _) { if (!licensed()) fail("not licensed"); vmBus_send('slackMessageReceived, this, _); } // API // untested void editMessage(S context, S channel, S text) ctex { ChatUpdateRequest request = ChatUpdateRequest.builder() .token(slackToken) .text(text) .ts(assertNempty(dropPrefix("slack ", context))) .channel(channel) .build(); ChatUpdateResponse response = slack.methods().chatUpdate(request); print(response); } void storeLineInCRUD(Map msgJSON) { main.storeLineInCRUD(msgJSON); } }