Move date filtering into main add movie intent
This commit is contained in:
parent
e63769c379
commit
eaf8f70c4f
@ -2,15 +2,6 @@
|
||||
"intents": [
|
||||
{
|
||||
"intent": "AddMovie",
|
||||
"slots": [
|
||||
{
|
||||
"name": "movieName",
|
||||
"type": "AMAZON.LITERAL"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"intent": "AddMovieDate",
|
||||
"slots": [
|
||||
{
|
||||
"name": "movieName",
|
||||
@ -28,6 +19,10 @@
|
||||
{
|
||||
"name": "movieName",
|
||||
"type": "AMAZON.LITERAL"
|
||||
},
|
||||
{
|
||||
"name": "releaseDate",
|
||||
"type": "AMAZON.DATE"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -5,26 +5,26 @@ AddMovie add {The Avengers|movieName}
|
||||
AddMovie add {The Dark Knight|movieName}
|
||||
AddMovie add {Live or Let Die|movieName}
|
||||
|
||||
AddMovieDate add {The Godfather|movieName} came out in {releaseDate}
|
||||
AddMovieDate add {Star Wars|movieName} came out in {releaseDate}
|
||||
AddMovieDate add {Star Wars Episode Four A New Hope|movieName} came out in {releaseDate}
|
||||
AddMovieDate add {The Avengers|movieName} came out in {releaseDate}
|
||||
AddMovieDate add {The Dark Knight|movieName} came out in {releaseDate}
|
||||
AddMovieDate add {Live or Let Die|movieName} came out in {releaseDate}
|
||||
AddMovie add {The Godfather|movieName} came out in {releaseDate}
|
||||
AddMovie add {Star Wars|movieName} came out in {releaseDate}
|
||||
AddMovie add {Star Wars Episode Four A New Hope|movieName} came out in {releaseDate}
|
||||
AddMovie add {The Avengers|movieName} came out in {releaseDate}
|
||||
AddMovie add {The Dark Knight|movieName} came out in {releaseDate}
|
||||
AddMovie add {Live or Let Die|movieName} came out in {releaseDate}
|
||||
|
||||
AddMovieDate add {The Godfather|movieName} from {releaseDate}
|
||||
AddMovieDate add {Star Wars|movieName} from {releaseDate}
|
||||
AddMovieDate add {Star Wars Episode Four A New Hope|movieName} from {releaseDate}
|
||||
AddMovieDate add {The Avengers|movieName} from {releaseDate}
|
||||
AddMovieDate add {The Dark Knight|movieName} from {releaseDate}
|
||||
AddMovieDate add {Live or Let Die|movieName} from {releaseDate}
|
||||
AddMovie add {The Godfather|movieName} from {releaseDate}
|
||||
AddMovie add {Star Wars|movieName} from {releaseDate}
|
||||
AddMovie add {Star Wars Episode Four A New Hope|movieName} from {releaseDate}
|
||||
AddMovie add {The Avengers|movieName} from {releaseDate}
|
||||
AddMovie add {The Dark Knight|movieName} from {releaseDate}
|
||||
AddMovie add {Live or Let Die|movieName} from {releaseDate}
|
||||
|
||||
AddMovieDate add {The Godfather|movieName} released in {releaseDate}
|
||||
AddMovieDate add {Star Wars|movieName} released in {releaseDate}
|
||||
AddMovieDate add {Star Wars Episode Four A New Hope|movieName} released in {releaseDate}
|
||||
AddMovieDate add {The Avengers|movieName} released in {releaseDate}
|
||||
AddMovieDate add {The Dark Knight|movieName} released in {releaseDate}
|
||||
AddMovieDate add {Live or Let Die|movieName} released in {releaseDate}
|
||||
AddMovie add {The Godfather|movieName} released in {releaseDate}
|
||||
AddMovie add {Star Wars|movieName} released in {releaseDate}
|
||||
AddMovie add {Star Wars Episode Four A New Hope|movieName} released in {releaseDate}
|
||||
AddMovie add {The Avengers|movieName} released in {releaseDate}
|
||||
AddMovie add {The Dark Knight|movieName} released in {releaseDate}
|
||||
AddMovie add {Live or Let Die|movieName} released in {releaseDate}
|
||||
|
||||
FindMovie is {The Godfather|movieName} on the list
|
||||
FindMovie is {Star Wars|movieName} on the list
|
||||
@ -53,3 +53,24 @@ FindMovie if {Star Wars Episode Four A New Hope|movieName} is already
|
||||
FindMovie if {The Avengers|movieName} is already
|
||||
FindMovie if {The Dark Knight|movieName} is already
|
||||
FindMovie if {Live or Let Die| movieName} is already
|
||||
|
||||
FindMovie is {The Godfather|movieName} came out in {releaseDate} on the list
|
||||
FindMovie is {Star Wars|movieName} came out in {releaseDate} on the list
|
||||
FindMovie is {Star Wars Episode Four A New Hope|movieName} came out in {releaseDate} on the list
|
||||
FindMovie is {The Avengers|movieName} came out in {releaseDate} on the list
|
||||
FindMovie is {The Dark Knight|movieName} came out in {releaseDate} on the list
|
||||
FindMovie is {Live or Let Die|movieName} came out in {releaseDate} on the list
|
||||
|
||||
FindMovie if {The Godfather|movieName} from {releaseDate} is on the list
|
||||
FindMovie if {Star Wars|movieName} from {releaseDate} is on the list
|
||||
FindMovie if {Star Wars Episode Four A New Hope|movieName} from {releaseDate} is on the list
|
||||
FindMovie if {The Avengers|movieName} from {releaseDate} is on the list
|
||||
FindMovie if {The Dark Knight|movieName} from {releaseDate} is on the list
|
||||
FindMovie if {Live or Let Die|movieName} from {releaseDate} is on the list
|
||||
|
||||
FindMovie is {The Godfather|movieName} released in {releaseDate} already
|
||||
FindMovie is {Star Wars|movieName} released in {releaseDate} already
|
||||
FindMovie is {Star Wars Episode Four A New Hope|movieName} released in {releaseDate} already
|
||||
FindMovie is {The Avengers|movieName} released in {releaseDate} already
|
||||
FindMovie is {The Dark Knight|movieName} released in {releaseDate} already
|
||||
FindMovie is {Live or Let Die|movieName} released in {releaseDate} already
|
||||
|
@ -5,7 +5,8 @@ import CouchPotato from 'node-couchpotato';
|
||||
import {
|
||||
buildPrompt,
|
||||
sendSearchResponse,
|
||||
formatSearchResults
|
||||
formatSearchResults,
|
||||
parseDate
|
||||
} from './utils.js';
|
||||
|
||||
import {
|
||||
@ -57,23 +58,12 @@ export function handleFindMovieIntent(req, resp) {
|
||||
|
||||
export function handleAddMovieIntent(req, resp) {
|
||||
const movieName = req.slot('movieName');
|
||||
|
||||
cp.movie.search(movieName, NUM_RESULTS).then(function (movies) {
|
||||
movies = formatSearchResults(movies);
|
||||
sendSearchResponse(movies, movieName, resp);
|
||||
});
|
||||
|
||||
//Async response
|
||||
return false;
|
||||
}
|
||||
|
||||
export function handleAddMovieDateIntent(req, resp) {
|
||||
const movieName = req.slot('movieName');
|
||||
const releaseDate = new Date(req.slot('releaseDate')).getUTCFullYear();
|
||||
const releaseDate = parseDate(req.slot('releaseDate'));
|
||||
const filterFn = (movie) => movie.year === releaseDate.year;
|
||||
|
||||
// Grab more results since we'll end up filtering by date
|
||||
cp.movie.search(movieName, NUM_RESULTS * 2).then(function (movies) {
|
||||
movies = formatSearchResults(movies).filter((movie) => movie.year == releaseDate);
|
||||
movies = formatSearchResults(movies, releaseDate ? filterFn : undefined);
|
||||
sendSearchResponse(movies, movieName, resp);
|
||||
});
|
||||
|
||||
|
@ -5,7 +5,6 @@ import Alexa from 'alexa-app';
|
||||
import handleLaunchIntent, {
|
||||
handleFindMovieIntent,
|
||||
handleAddMovieIntent,
|
||||
handleAddMovieDateIntent,
|
||||
handleYesIntent,
|
||||
handleNoIntent,
|
||||
handleCancelIntent,
|
||||
@ -17,7 +16,6 @@ const app = new Alexa.app('couchPotato');
|
||||
app.launch(handleLaunchIntent);
|
||||
app.intent('FindMovie', handleFindMovieIntent);
|
||||
app.intent('AddMovie', handleAddMovieIntent);
|
||||
app.intent('AddMovieDate', handleAddMovieDateIntent);
|
||||
app.intent('AMAZON.YesIntent', handleYesIntent);
|
||||
app.intent('AMAZON.NoIntent', handleNoIntent);
|
||||
app.intent('AMAZON.CancelIntent', handleCancelIntent);
|
||||
|
@ -29,7 +29,7 @@ export function sendSearchResponse(movies, movieName, resp) {
|
||||
.send();
|
||||
}
|
||||
|
||||
export function formatSearchResults(movies) {
|
||||
export function formatSearchResults(movies, filterFn = () => { return true }) {
|
||||
if (movies) {
|
||||
return movies.map((movie) => {
|
||||
return {
|
||||
@ -39,8 +39,23 @@ export function formatSearchResults(movies) {
|
||||
titles: movie.titles,
|
||||
imdb: movie.imdb
|
||||
}
|
||||
});
|
||||
}).filter(filterFn);
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
export function parseDate(dateStr) {
|
||||
if (!dateStr) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const parts = dateStr.split('-');
|
||||
const date = new Date(dateStr);
|
||||
|
||||
return {
|
||||
year: date.getUTCFullYear(),
|
||||
month: parts.length > 1 ? date.getUTCMonth() + 1 : null,
|
||||
date: parts.length > 2 ? date.getUTCDate() + 1 : null
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user