This repository has been archived by the owner on Jun 5, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
98 lines (68 loc) · 2.45 KB
/
server.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
const express = require('express');
const hbs = require('hbs');
const http = require('http');
const socketIO = require('socket.io');
const path = require('path');
//firebase
var admin = require("firebase-admin");
var serviceAccount = require('./serviceAccountKey.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://askaboutblockchain.firebaseio.com"
});
var db = admin.database();
var ref = db.ref("questions");
const {generateMessage} = require('./public/js/message');
const qna = require('./qna');
const port = process.env.PORT || 3000;
var app = express();
var server = http.createServer(app);
var io = socketIO(server);
app.use(express.static(path.join(__dirname + '/public')));
hbs.registerPartials(__dirname + '/views/partials');
app.set('view engine', 'hbs');
app.get('/', (req, res) => {
res.render('index.hbs');
});
io.on('connection', (socket) => {
socket.on('createMessage', (message, callback) => {
let question = {"question":message.text,
'top': 3};
let content = JSON.stringify(question);
console.log(message.text);
qna.get_answers(qna.method, content, function (result) {
// Write out the response from the /knowledgebases/create method.
let obj = JSON.parse(result)
let replyMessage = "";
if (obj.answers[0].answer == 'No good match found in KB.'){
replyMessage = "I'm sorry, I am not trained to answer that yet.";
socket.emit('newMessage', generateMessage('Bot', replyMessage));
}
else{
replyMessage = obj.answers[0].answer;
socket.emit('newMessage', generateMessage('Bot', obj.answers[0].answer));
}
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd = '0'+dd
}
if(mm<10) {
mm = '0'+mm
}
today = mm + '/' + dd + '/' + yyyy;
var newPostRef = ref.push();
newPostRef.set({
question: message.text,
answer: obj.answers[0].answer,
date: today
});
});
callback();
});
});
server.listen(port, () => {
console.log(`Server is up on port ${port}`);
})