clean answer from html tags so it can be recited by alexa

This commit is contained in:
GotPPay
2018-04-02 04:15:36 +02:00
parent e4b1617dc1
commit e04dbe3ec9
3 changed files with 114 additions and 158 deletions

View File

@@ -1,6 +1,7 @@
let request = require ('request');
let Parser = require ('rss-parser');
let summarizer = require('nodejs-text-summarizer')
let summarizer = require ('nodejs-text-summarizer');
var htmlToText = require ('html-to-text');
const constants = require ('../config/constants');
let parser = new Parser ();
@@ -43,7 +44,9 @@ module.exports = {
.then (rawData => {
let result = '';
rawData.forEach (post => {
result += post.title.rendered + `<break time="${constants.voiceResponseTimings.PAUSE_BETWEEN_TITLES}ms"/> `;
result +=
post.title.rendered +
`<break time="${constants.voiceResponseTimings.PAUSE_BETWEEN_TITLES}ms"/> `;
});
resolve (result);
})
@@ -53,24 +56,35 @@ module.exports = {
});
},
getLatestNewsFromWP: function (sourceUrl, postCount = 10, includeTitle = false) {
getLatestNewsFromWP: function (
sourceUrl,
postCount = 10,
includeTitle = false
) {
return new Promise ((resolve, reject) => {
getDataFromWPJSON (sourceUrl, 1, postCount)
.then (rawData => {
let result = '';
try{
try {
rawData.forEach (post => {
result += (includeTitle) ? post.title.rendered : '';
result += (includeTitle) ? `<break time="${constants.voiceResponseTimings.PAUSE_BETWEEN_TITLE_AND_CONTENT}ms"/>` : '';
result += summarizer(post.content.rendered);
result += `<break time="${constants.voiceResponseTimings.PAUSE_BETWEEN_NEWS}ms"/>`;
result += includeTitle ? post.title.rendered : '';
result += includeTitle
? `<break time="${constants.voiceResponseTimings.PAUSE_BETWEEN_TITLE_AND_CONTENT}ms"/>`
: '';
result += summarizer (post.content.rendered);
result += `<break time="${constants.voiceResponseTimings.PAUSE_BETWEEN_NEWS}ms"/>`;
});
resolve(result);
}catch(err){
reject(constants.voiceResponseString.ERROR_SUMMARIZING_CONTENT)
var textAnswer = htmlToText.fromString (result, {
wordwrap: false,
ignoreHref: true,
ignoreImage: true,
});
resolve (textAnswer);
} catch (err) {
reject (constants.voiceResponseString.ERROR_SUMMARIZING_CONTENT);
}
})
.catch (err => {
reject (constants.voiceResponseString.ERROR_FETCHING_CONTENT);