Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const utils = require('./utils');
// Game management functions.
const game = require('./game');
// All the user prompts.
const prompts = game.prompts;
// Google Analytics.
const analytics = game.analytics;
// Import the Dialogflow module from the Actions on Google client library.
// https://github.com/actions-on-google/actions-on-google-nodejs
const {dialogflow, Image, SimpleResponse, BasicCard} = require('actions-on-google');
// Node util module used for creating dynamic strings
const util = require('util');
// Instantiate the Dialogflow client with debug logging enabled.
const app = dialogflow({
debug: true,
});
// Do common tasks for each intent invocation.
app.middleware((conv, framework) => {
logger.info(`Intent=${conv.intent}`);
logger.info(`Type=${conv.input.type}`);
logger.info(`Raw=${conv.input.raw}`);
// https://developers.google.com/actions/console/actions-health-check
conv.isHealthCheck = false;
if (conv.arguments[game.HEALTH_CHECK_ARGUMENT]) {
logger.info(`Health check`);
// Short circuit for health checks to do a simple response in the
// main welcome intent handler.
conv.isHealthCheck = true;
// Import the Dialogflow module and response creation dependencies
// from the Actions on Google client library.
const {
dialogflow,
BasicCard,
Permission,
Suggestions,
Carousel,
Image,
} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
// Define a mapping of fake color strings to basic card objects.
const colorMap = {
'indigo taco': {
title: 'Indigo Taco',
text: 'Indigo Taco is a subtle bluish tone.',
image: {
url: 'https://storage.googleapis.com/material-design/publish/material_v_12/assets/0BxFyKV4eeNjDN1JRbF9ZMHZsa1k/style-color-uiapplication-palette1.png',
accessibilityText: 'Indigo Taco Color',
},
display: 'WHITE',
},
'pink unicorn': {
title: 'Pink Unicorn',
text: 'Pink Unicorn is an imaginative reddish hue.',
image: {
'use strict';
const {
dialogflow,
BasicCard,
Image,
SimpleResponse,
} = require('actions-on-google');
const functions = require('firebase-functions');
const fetch = require('isomorphic-fetch');
const URL = 'https://raw.githubusercontent.com/actions-on-google/dialogflow-quotes-nodejs/master/quotes.json';
const BACKGROUND_IMAGE = 'https://lh3.googleusercontent.com/t53m5nzjMl2B_9Qhwc81tuwyA2dBEc7WqKPlzZJ9syPUkt9VR8lu4Kq8heMjJevW3GVv9ekRWntyqXIBKEhc5i7v-SRrTan_=s688';
const app = dialogflow({debug: true});
// Retrieve data from the external API.
app.intent('Default Welcome Intent', (conv) => {
// Note: Moving this fetch call outside of the app intent callback will
// cause it to become a global var (i.e. it's value will be cached across
// function executions).
return fetch(URL)
.then((response) => {
if (response.status < 200 || response.status >= 300) {
throw new Error(response.statusText);
} else {
return response.json();
}
})
.then((json) => {
// Grab random quote data from JSON.
const { dialogflow } = require('actions-on-google')
const functions = require('firebase-functions')
const admin = require('firebase-admin')
// Config file generated through the Firebase admin interface
const serviceAccount = require("./life-stats-168c9-firebase-adminsdk-tiaoj-4c55fe4206.json")
// Initialise the app with the config file
// databaseURL should probably be in a .env file
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://life-stats-168c9.firebaseio.com"
})
// create a dialogflow app
const app = dialogflow({
debug: true
})
// For the Add Coffee intent
// The coffee variable is passed from DialogFlow far giving the intent several Training Phrases
app.intent('Add Coffee', (conv, { coffees }) => {
// Print out a request while the DB is being updated
conv.ask(`Processing your request...`)
// Push the coffee count + a timestamp into the DB
return admin.database().ref('/coffee').push({
coffee: parseInt(coffees), // the coffee variable is a string by default
timestamp: admin.database.ServerValue.TIMESTAMP // used to organise when coffees were consumed
})
// Print out a success message
.then((snapshot) => conv.close(`We've added ${coffees} coffees`))
'use strict';
// Import the Dialogflow module and response creation dependencies
// from the Actions on Google client library.
const {
dialogflow,
BasicCard,
Permission,
} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
// Define a mapping of fake color strings to basic card objects.
const colorMap = {
'indigo taco': new BasicCard({
title: 'Indigo Taco',
image: {
url: 'https://storage.googleapis.com/material-design/publish/material_v_12/assets/0BxFyKV4eeNjDN1JRbF9ZMHZsa1k/style-color-uiapplication-palette1.png',
accessibilityText: 'Indigo Taco Color',
},
display: 'WHITE',
}),
'pink unicorn': new BasicCard({
title: 'Pink Unicorn',
image: {
url: 'https://storage.googleapis.com/material-design/publish/material_v_12/assets/0BxFyKV4eeNjDbFVfTXpoaEE5Vzg/style-color-uiapplication-palette2.png',
accessibilityText: 'Pink Unicorn Color',
const helper = require('node-red-viseo-helper')
const botmgr = require('node-red-viseo-bot-manager')
const uuidv4 = require('uuid/v4');
const LRUMap = require('./lib/lru.js').LRUMap;
const { Message } = require('./lib/messages.js');
const CARRIER = "GoogleHome"
const { dialogflow } = require('actions-on-google');
let app = dialogflow({ ordersv3: true });
// --------------------------------------------------------------------------
// NODE-RED
// --------------------------------------------------------------------------
module.exports = function(RED) {
const register = function(config) {
RED.nodes.createNode(this, config);
var node = this;
start(RED, node, config);
this.on('close', (done) => { stop(node, config, done) });
}
RED.nodes.registerType("dialogflow-server", register);
SimpleResponse,
} = require('actions-on-google')
const { values, concat, random, randomPop } = require('./util')
const responses = require('./responses')
const AppContexts = {
FACT: 'choose_fact-followup',
CATS: 'choose_cats-followup',
}
const Lifespans = {
DEFAULT: 5,
}
const app = dialogflow({
debug: true,
init: () => ({
data: {
facts: responses.categories.reduce((o, c) => { // Convert array of facts to map
o[c.category] = c.facts.slice()
return o
}, {}),
cats: responses.cats.facts.slice(), // copy cat facts
},
}),
})
app.intent('Unrecognized Deep Link Fallback', conv => {
const response = util.format(responses.general.unhandled, conv.query)
const suggestions = responses.categories.map(c => c.suggestion)
conv.ask(response, new Suggestions(suggestions))
const INTENT_WELCOME = 'Default Welcome Intent';
/**
* @param {DialogflowConversation} assistant
*/
function welcomeHandler(assistant) {
let welcoming = 'Welcome to Mamma Mia Pizza!';
if (assistant.user.name.display) {
welcoming = `Welcome to Mamma Mia Pizza, is awesome to have you back ${assistant.user.name.display}!`;
}
welcoming += ' What pizza do you want today ?';
assistant.ask(welcoming);
}
const app = dialogflow();
app.intent(INTENT_WELCOME, welcomeHandler);
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
const functions = require('firebase-functions');
const { dialogflow } = require('actions-on-google');
const app = dialogflow({
debug: true
});
app.intent('Default Welcome Intent', conv => {
conv.close('Hello, world!');
});
exports.fulfillment = functions.https.onRequest(app);
constructor( plant ) {
this.plant = plant;
const app = dialogflow();
app.intent( ACTION_WELCOME, this.welcomeHandler.bind( this ) );
app.intent( ACTION_ENVIRONMENT, this.enviromentHandler.bind( this ) );
app.intent( ACTION_STATUS, this.statusHandler.bind( this ) );
app.intent( ACTION_WATER_ON, this.waterOnHandler.bind( this ) );
app.intent( ACTION_WATER_OFF, this.waterOffHandler.bind( this ) );
app.intent( ACTION_LIGHT_ON, this.lightOnHandler.bind( this ) );
app.intent( ACTION_LIGHT_OFF, this.lightOffHandler.bind( this ) );
this.app = app;
}