Slackbot - Как передать пользовательский ввод через node js для поиска - PullRequest
0 голосов
/ 17 марта 2020

В настоящее время я создаю Slackbot, где пользовательский ввод сохраняется, а затем отправляется дочернему процессу, который запускает сценарий python, который ищет входные данные из json полученных данных. Затем полученный результат должен отображаться в Slack для пользователя.

Я застрял, интегрируя Slackbot и программу node js, вызывающую поиск python. Вот код, использующий rtm для подключения.

rtm.on('interactive_message',(event)=>{
});
rtm.on('message', (event) => {
    if(!event.subtype){

        processTextAndRespond(event.text,event.user,event);
    }else{
        console.log('nothing to do !!!');
    }
});


rtm.on()

const processTextAndRespond = async function(userText,userName,event){
    var answer = userText;
    var =

 };
 const callback = async function(result,userName,event){
    if(result=== undefined){
        botFound=true;
        result=process.env.NO_PHRASES_FOUND;
        updateUnAvailablePredicate(userName,event.text);
    }
    postMessage(event,result);
};

const postMessage = async function(event,result){
try {


        const reply = await rtm.sendMessage(result, event.channel);


  } catch (error) {
  }
};

Вот программа node js, которая вызывает скрипт python, который я должен интегрировать с чатботом:

var childProcess = require("child_process").spawn('python', ['./search.py'], {stdio: "inherit"})
const stream = require('stream');



childProcess.on('data', function(data){
    process.stdout.write("python script output",data);
});
childProcess.on('close', function(code) {
        if ( code === 1 ){
            process.stderr.write("error occured",code);
            process.exit(1);
        }
        else{
            process.stdout.write('"python script exist with code: ' + code + '\n');
  }

Пожалуйста, помогите мне, в данный момент застрявшим в этой задаче. Как сохранить введенные пользователем данные, затем передать их в node js и использовать ту же переменную, что и для ввода для программы python.

...