/
app.js
70 lines (60 loc) · 3.2 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
var app = require('express')();
var excel = require('excel4node');
var downloadedDataLogs = require('./conversationStorage'); //Array to Store Downloaded Data logs
var writeToWorkSpaceExcel = require('./excelGenerator'); //Writes Conversation to Excel File
var workbook = new excel.Workbook();
function convoToExcelApp(downloadedDataLogs) {
var ChatConversations = downloadedDataLogs;
var visitedNodes = [];
var totalWrites = 0;
for (var i in ChatConversations) {
var eachConvo = ChatConversations[i];
var userUniqueSessionID = eachConvo._source.custom_data.cg_context.session_id;
if (!visitedNodes.includes(userUniqueSessionID)) {
//If Item is not already visited, then find all items with same ID
var userInput = eachConvo._source.custom_data.input.text;
var timeFromAPI = eachConvo._source.date_time;
var timestamp = new Date(timeFromAPI);
timestamp = timestamp.toDateString() + " " + timestamp.toTimeString().substring(0, 5);
//Template for UserData
function Data(userInput, timestamp, botResponse) {
this.userInput = userInput;
this.timestamp = timestamp;
this.botResponse = [];
}
//Block for Storing data with Common uniqueID
var dataBlock = {
workSheetName: userUniqueSessionID,
datas: []
}
for (var subI = i; subI < ChatConversations.length; subI++) {
//Checks all of the Arrays for the same i, and adds the user Data to the sheet;
var SubUserUniqueSessionID = ChatConversations[subI]._source.custom_data.cg_context.session_id;
console.log("I is: "+ userUniqueSessionID + " iSub is: "+SubUserUniqueSessionID );
if (!visitedNodes.includes(userUniqueSessionID) && userUniqueSessionID==SubUserUniqueSessionID) {
var userInput = ChatConversations[subI]._source.custom_data.input.text;
var chatbotResponse = '';
var thisItem = new Data(userInput, timestamp, new Array()); //Adds the first Item
for (var j in ChatConversations[subI]._source.custom_data.output.generic) {
//Capturing one or more Responses from Chatbot
var eachChatBotReponse = ChatConversations[subI]._source.custom_data.output.generic[j]; //Each CB Reponse
chatbotResponse = eachChatBotReponse.text;
// console.log("Chatbot Response = " + chatbotResponse)
thisItem.botResponse.push(chatbotResponse); //Buffers the response to each dialogue
}
dataBlock.datas.push(thisItem);
}
}
//Writes input to Sheet
writeToWorkSpaceExcel(2, 3, dataBlock, workbook);
visitedNodes.push(userUniqueSessionID);
totalWrites++;
}
}
console.log("Total Writes = " + totalWrites);
workbook.write("Single_ChatLog" + '.xlsx');
}
convoToExcelApp(downloadedDataLogs);
app.listen(3000, function () {
console.log("EmailBot is running!");
});