UNPKG

dcupachatbot

Version:

DCU Personal Assistant chat bot for CA400 project

93 lines (84 loc) 3.08 kB
'use strict'; var request = require('request'); var cheerio = require('cheerio'); var HashMap = require('hashmap'); var getFOIFAQ = function getFOIFAQ(userQuestion, callback) { var url = 'https://www.dcu.ie/foi/faq.shtml'; var intent = userQuestion; var intentCase = intent.toLowerCase(); var map = new HashMap(); var foundAnswer = false; map .set('1', "what is a record") .set('2', "diary a record") .set('3', "e-mail") .set('4', "draft") .set('5', "copyright") .set('6', "electronic copies") .set('7', "keep all our records") .set('8', "fee to see records") .set('9', "release") .set('10', "have to do with foi request") .set('11', "recognise") .set('12', "make an foi request") .set('13', "personnel") .set('14', "get everything") .set('15', "what form") .set('16', "cost") .set('17', "requests immediately") .set('18', "time") .set('19', "limit") .set('20', "libellous") .set('21', "incorrect") .set('23', "reasons") .set('24', "right of access") .set('25', "right to reasons") .set('26', "data protection act") .set('27', "contractors") .set('28', "not happy") .set('29', "decision final") .set('30', "information about me") .set('31', "less privacy") .set('32', "businesses") .set('33', "refuse to agree") .set('34', "before the appeal") .set('35', "parents") .set('36', "deceased") .set('37', "several people") .set('38', "override") .set('39', "sub judice") .set('40', "who made an allegation") .set('41', "public interest") ; request(url, function (error, response, html) { if (!error && response.statusCode == 200) { var $ = cheerio.load(html); $('b').each(function(i, element) { var question = $(this).eq(0).text(); var answer = $(this).parent().parent().next().eq(0).text(); if(!answer) { var answer = $(this).parent().next().eq(0).text(); } map.forEach(function(value, key) { var valCase = value.toLowerCase(); if(intentCase.indexOf(valCase) > -1 && question.indexOf(valCase) > -1) { var qReply = 'Q: ' + question; foundAnswer = true; callback(error, qReply, answer) } }); }); if(foundAnswer == false) { var reply = 'Sorry, I could not find an answer for that question.'; callback(reply); } } else { // There was an error callback(error); } }); }; module.exports = getFOIFAQ;