Skip to content

Commit

Permalink
Changes for #4
Browse files Browse the repository at this point in the history
  • Loading branch information
Danil Skachkov committed Jan 16, 2017
1 parent 09565ec commit 5b1dad8
Showing 1 changed file with 51 additions and 40 deletions.
91 changes: 51 additions & 40 deletions api-ai-botkit.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,66 +50,77 @@ function createApiAiProcessing(token) {

worker.process = function (message, bot) {
try {
if (message.type == 'message') {
if (message.user == bot.identity.id) {
// message from bot can be skipped
}
else if (message.text.indexOf("<@U") == 0 && message.text.indexOf(bot.identity.id) == -1) {
// skip other users direct mentions
}
else {
let requestText = decoder.decode(message.text);
requestText = requestText.replace("’", "'");

let channel = message.channel;
let messageType = message.event;
let botId = '<@' + bot.identity.id + '>';
if (isDefined(message.text)) {
let userId = message.user;

if (requestText.indexOf(botId) > -1) {
requestText = requestText.replace(botId, '');
}
let requestText = decoder.decode(message.text);
requestText = requestText.replace("’", "'");

if (!(channel in worker.sessionIds)) {
worker.sessionIds[channel] = uuidV4();
if (isDefined(bot.identity) && isDefined(bot.identity.id)) {
// it seems it is Slack

if (message.user == bot.identity.id) {
// message from bot can be skipped
return;
}

let request = worker.apiaiService.textRequest(requestText,
{
sessionId: worker.sessionIds[channel]
});
if (message.text.indexOf("<@U") == 0 && message.text.indexOf(bot.identity.id) == -1) {
// skip other users direct mentions
return;
}

request.on('response', (response) => {
let botId = '<@' + bot.identity.id + '>';
if (requestText.indexOf(botId) > -1) {
requestText = requestText.replace(botId, '');
}

worker.allCallback.forEach((callback) => {
callback(message, response, bot);
});
userId = message.channel;
}

if (isDefined(response.result)) {
let action = response.result.action;
if (!(userId in worker.sessionIds)) {
worker.sessionIds[userId] = uuidV4();
}

if (isDefined(action)) {
if (worker.actionCallbacks[action]) {
worker.actionCallbacks[action].forEach((callback) => {
callback(message, response, bot);
});
}
}
let request = worker.apiaiService.textRequest(requestText,
{
sessionId: worker.sessionIds[userId],
originalRequest: {
data: message,
source: "api-ai-botkit"
}
});

request.on('error', (error) => {
console.error(error);
request.on('response', (response) => {

worker.allCallback.forEach((callback) => {
callback(message, response, bot);
});

request.end();
if (isDefined(response.result)) {
let action = response.result.action;

}
if (isDefined(action)) {
if (worker.actionCallbacks[action]) {
worker.actionCallbacks[action].forEach((callback) => {
callback(message, response, bot);
});
}
}
}
});

request.on('error', (error) => {
console.error(error);
});

request.end();
}

} catch (err) {
console.error(err);
}
};


return worker;
}

0 comments on commit 5b1dad8

Please sign in to comment.