forked from amad-person/NUSTalkBot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconnectorSetup.js
executable file
·75 lines (64 loc) · 2.61 KB
/
connectorSetup.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
module.exports = function () {
// node modules
global.restify = require('restify');
global.builder = require('botbuilder');
global.request = require('request');
global.async = require('async');
global.google = require('google');
global.http = require('http');
require('dotenv').load(); // to load environment variables
// create chat connector for communicating bot framework service
var connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
// bot declaration
global.bot = new builder.UniversalBot(connector, function (session) {
session.userData.token = "";
session.userData.name = "default";
session.userData.moduleNames =[];
session.userData.modules = [];
session.userData.moduleQueries = [];
session.userData.timetableRaw = [];
session.userData.timetable = [];
session.save();
// data is obtained from NUSMods here.
// https://wiki.nus.edu.sg/display/ivlelapi/Timetable
// https://wiki.nus.edu.sg/display/ivlelapi/Module
// var numMods = about.moduleNames.length, url, count = 0;
//
// async.whilst(
// function () { return count < numMods; },
// function (callback) {
// url = 'http://api.nusmods.com/2017-2018/modules/' + session.userData.about.moduleNames[count] + '/index.json';
// request(url, function(error, response, body){
// if(!error && response.statusCode === 200){
// var importedJSON = JSON.parse(body);
// session.userData.about.modules.push(importedJSON);
// count++;
// callback();
// }
// });
// },
// function (err) {
// session.save();
// }
// );
session.replaceDialog('rootDialog');
});
// setup the restify server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
// listen for messages from users
server.post('/api/messages', connector.listen());
// LUIS recognizer
var recognizer = new builder.LuisRecognizer(process.env.LUIS_MODEL_URL);
bot.recognizer(recognizer);
global.intents = new builder.IntentDialog({ recognizers:[recognizer] });
// middleware
bot.use(
builder.Middleware.sendTyping()
);
};