Fix for invalid response in AddMovie Intent

Rebuild new array of returned movies with minimum required movie data to
fix invalid response on Echo devices (due to response size limitation).
This commit is contained in:
sharepointalex 2016-10-27 12:40:26 +01:00 committed by Joseph J. Schmitt
parent 8bf943fb25
commit 2580f55829
2 changed files with 43 additions and 8 deletions

View File

@ -11,7 +11,6 @@ var HELP_RESPONSE = ['You can ask Couch Potato about the movies in your queue or
var config = require('dotenv').config();
var cp = new CouchPotato({
url: config.CP_URL,
apikey: config.CP_API_KEY
});
function handleLaunchIntent(req, resp) {
@ -52,10 +51,16 @@ function handleFindMovieIntent(req, resp) {
function handleAddMovieIntent(req, resp) {
var movieName = req.slot('movieName');
cp.movie.search(movieName).then(function (movies) {
utils.sendSearchResponse(movies, resp);
});
cp.movie.search(movieName,5).then(function (movies) {
movies = utils.formatSearchResults(movies);
utils.sendSearchResponse(movies, movieName, resp);
})
//Async response
return false;
}
//Async response
return false;

View File

@ -1,6 +1,6 @@
function buildPrompt(movies) {
var promptData = {
searchResults: movies.slice(0, 5),
searchResults: movies,
yesAction : 'addMovie',
yesResponse: 'Added ' + movies[0].original_title + ' (' + movies[0].year + ')' + ' to your list of movies to download.'
};
@ -24,12 +24,42 @@ function sendSearchResponse(movies, resp) {
resp
.say(['Add', movies[0].original_title, '(' + movies[0].year + ')', 'to your list?'].join(' '))
.session('promptData', buildPrompt(movies.slice(0, 5)))
.session('promptData', buildPrompt(movies))
.shouldEndSession(false)
.send();
function formatSearchResults(movies)
{
try{
if (movies != undefined)
{
var newMovies = [];
for (var i = 0; i < movies.length; i++)
{ newMovies.push({
original_title: movies[i].original_title,
inLibrary: movies[i].in_library,
year: movies[i].year,
titles: movies[i].titles,
imdb: movies[i].imdb });
}
}
return newMovies;
}
catch (e)
{
console.log(e);
}
}
module.exports = {
buildPrompt: buildPrompt,
sendSearchResponse: sendSearchResponse
sendSearchResponse: sendSearchResponse,
formatSearchResults: formatSearchResults
};