-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
135 lines (113 loc) · 3.63 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
var builder = require('botbuilder');
var restify = require('restify');
var moments = {};
//=========================================================
// Bot Setup
//=========================================================
// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3979, function () {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat bot
var connector = new builder.ChatConnector({
appId: 'd2b14853-9126-4b2b-bf9c-dc81a41d9387',
appPassword: 'WXSughapaNbQT0gR1mcTESb'
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());
//=========================================================
// Bots Dialogs
//=========================================================
var intents = new builder.IntentDialog();
bot.dialog('/', intents);
var firstStart = false;
intents.onDefault([
function (session, args, next) {
if (!session.userData.name) {
firstStart = true;
session.beginDialog('/profile');
} else {
next();
}
},
function (session, results) {
if(firstStart) {
firstStart = false;
session.beginDialog('/intro');
}
else {
session.beginDialog('/theIntro');
}
session.beginDialog('/newMoment');
}
]);
bot.dialog('/intro', [
function (session) {
var responseText = 'Hi ' + session.userData.name + ', ';
responseText += 'I am Joyful Carron I want to remind you what amazing things happen in your life!';
session.send(responseText);
session.endDialog();
}
]);
bot.dialog('/theIntro', [
function (session) {
session.send('Hi ' + session.userData.name);
}
]);
bot.dialog('/newMoment', [
function (session) {
builder.Prompts.text(session, 'Tell me what has brightened your day!');
},
function (session, results) {
var day = new Date(Date.now()).getDate();
if(moments[day] == undefined) {
moments[day] = [];
}
moments[day].push(results.response);
// moments.push(day);
// moments[day].push({
// 'date': Date.now(),
// 'message': results.response
// });
session.send('Thanks, I added it! In the evening you choose your best moment of the day! Enjoy your day!');
session.endDialog();
}
]);
//=========================================================
// INTENTS Dialogs
//=========================================================
intents.matches(/^change name/i, [
function (session) {
session.beginDialog('/profile');
},
function (session, results) {
session.send('Ok... Changed your name to %s', session.userData.name);
}
]);
// intents.matches(/^/i, [
// function(session) {
// }
// ]);
intents.matches(/^what are my .* today/i, [
function (session) {
session.send('Wow, look what I’ve found!');
var todayMoments = moments[new Date(Date.now()).getDate()];
for(var i = 0; i < todayMoments.length; i++) {
session.send(todayMoments[i]);
}
session.send('I wonder if you will rate this as your highlight of your week! Have a good night!');
},
function (session, results) {
session.send('Ok... Changed your name to %s', session.userData.name);
}
]);
bot.dialog('/profile', [
function (session) {
builder.Prompts.text(session, 'Hi! What is your name?');
},
function (session, results) {
session.userData.name = results.response;
session.endDialog();
}
]);