botfuel-yeoman-generator
Version:
Create chatbots using Botfuel sdk
38 lines (31 loc) • 1.24 kB
Plain Text
const { PromptDialog } = require('botfuel-dialog');
const fetch = require('node-fetch');
const logger = require('logtown');
const GoogleImages = require('google-images');
const GoogleClient = new GoogleImages('016252577994980370624:dii3ua-fjfm', 'AIzaSyD7RSw89FoMyR_N8ReFQeG-sGO9zvmCMHQ');
class CharacterDialog extends PromptDialog {
async dialogWillDisplay(userMessage, { matchedEntities, missingEntities }) {
if (missingEntities.size === 0 ) {
const character = matchedEntities.characterName.values[0].value;
const response = await fetch(`https://www.swapi.co/api/people/?search=${character}`);
const requestResult = await response.json();
const images = await GoogleClient.search(character, {size: 'large'});
console.log(images);
if (requestResult && requestResult.count > 0 && images.length > 0) {
requestResult.results[0].photo = images[Math.floor(Math.random() * images.length)];
}
this.brain.botSet('character', requestResult.results[0]);
return { requestResult };
}
return null;
}
}
CharacterDialog.params = {
namespace: 'name',
entities: {
characterName: {
dim: 'character',
},
},
};
module.exports = CharacterDialog;