Move date filtering into main add movie intent
This commit is contained in:
parent
e63769c379
commit
eaf8f70c4f
@ -2,15 +2,6 @@
|
|||||||
"intents": [
|
"intents": [
|
||||||
{
|
{
|
||||||
"intent": "AddMovie",
|
"intent": "AddMovie",
|
||||||
"slots": [
|
|
||||||
{
|
|
||||||
"name": "movieName",
|
|
||||||
"type": "AMAZON.LITERAL"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"intent": "AddMovieDate",
|
|
||||||
"slots": [
|
"slots": [
|
||||||
{
|
{
|
||||||
"name": "movieName",
|
"name": "movieName",
|
||||||
@ -28,6 +19,10 @@
|
|||||||
{
|
{
|
||||||
"name": "movieName",
|
"name": "movieName",
|
||||||
"type": "AMAZON.LITERAL"
|
"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 {The Dark Knight|movieName}
|
||||||
AddMovie add {Live or Let Die|movieName}
|
AddMovie add {Live or Let Die|movieName}
|
||||||
|
|
||||||
AddMovieDate add {The Godfather|movieName} came out in {releaseDate}
|
AddMovie add {The Godfather|movieName} came out in {releaseDate}
|
||||||
AddMovieDate add {Star Wars|movieName} came out in {releaseDate}
|
AddMovie add {Star Wars|movieName} came out in {releaseDate}
|
||||||
AddMovieDate add {Star Wars Episode Four A New Hope|movieName} came out in {releaseDate}
|
AddMovie add {Star Wars Episode Four A New Hope|movieName} came out in {releaseDate}
|
||||||
AddMovieDate add {The Avengers|movieName} came out in {releaseDate}
|
AddMovie add {The Avengers|movieName} came out in {releaseDate}
|
||||||
AddMovieDate add {The Dark Knight|movieName} came out in {releaseDate}
|
AddMovie add {The Dark Knight|movieName} came out in {releaseDate}
|
||||||
AddMovieDate add {Live or Let Die|movieName} came out in {releaseDate}
|
AddMovie add {Live or Let Die|movieName} came out in {releaseDate}
|
||||||
|
|
||||||
AddMovieDate add {The Godfather|movieName} from {releaseDate}
|
AddMovie add {The Godfather|movieName} from {releaseDate}
|
||||||
AddMovieDate add {Star Wars|movieName} from {releaseDate}
|
AddMovie add {Star Wars|movieName} from {releaseDate}
|
||||||
AddMovieDate add {Star Wars Episode Four A New Hope|movieName} from {releaseDate}
|
AddMovie add {Star Wars Episode Four A New Hope|movieName} from {releaseDate}
|
||||||
AddMovieDate add {The Avengers|movieName} from {releaseDate}
|
AddMovie add {The Avengers|movieName} from {releaseDate}
|
||||||
AddMovieDate add {The Dark Knight|movieName} from {releaseDate}
|
AddMovie add {The Dark Knight|movieName} from {releaseDate}
|
||||||
AddMovieDate add {Live or Let Die|movieName} from {releaseDate}
|
AddMovie add {Live or Let Die|movieName} from {releaseDate}
|
||||||
|
|
||||||
AddMovieDate add {The Godfather|movieName} released in {releaseDate}
|
AddMovie add {The Godfather|movieName} released in {releaseDate}
|
||||||
AddMovieDate add {Star Wars|movieName} released in {releaseDate}
|
AddMovie add {Star Wars|movieName} released in {releaseDate}
|
||||||
AddMovieDate add {Star Wars Episode Four A New Hope|movieName} released in {releaseDate}
|
AddMovie add {Star Wars Episode Four A New Hope|movieName} released in {releaseDate}
|
||||||
AddMovieDate add {The Avengers|movieName} released in {releaseDate}
|
AddMovie add {The Avengers|movieName} released in {releaseDate}
|
||||||
AddMovieDate add {The Dark Knight|movieName} released in {releaseDate}
|
AddMovie add {The Dark Knight|movieName} released in {releaseDate}
|
||||||
AddMovieDate add {Live or Let Die|movieName} released in {releaseDate}
|
AddMovie add {Live or Let Die|movieName} released in {releaseDate}
|
||||||
|
|
||||||
FindMovie is {The Godfather|movieName} on the list
|
FindMovie is {The Godfather|movieName} on the list
|
||||||
FindMovie is {Star Wars|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 Avengers|movieName} is already
|
||||||
FindMovie if {The Dark Knight|movieName} is already
|
FindMovie if {The Dark Knight|movieName} is already
|
||||||
FindMovie if {Live or Let Die| 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 {
|
import {
|
||||||
buildPrompt,
|
buildPrompt,
|
||||||
sendSearchResponse,
|
sendSearchResponse,
|
||||||
formatSearchResults
|
formatSearchResults,
|
||||||
|
parseDate
|
||||||
} from './utils.js';
|
} from './utils.js';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -57,23 +58,12 @@ export function handleFindMovieIntent(req, resp) {
|
|||||||
|
|
||||||
export function handleAddMovieIntent(req, resp) {
|
export function handleAddMovieIntent(req, resp) {
|
||||||
const movieName = req.slot('movieName');
|
const movieName = req.slot('movieName');
|
||||||
|
const releaseDate = parseDate(req.slot('releaseDate'));
|
||||||
cp.movie.search(movieName, NUM_RESULTS).then(function (movies) {
|
const filterFn = (movie) => movie.year === releaseDate.year;
|
||||||
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();
|
|
||||||
|
|
||||||
// Grab more results since we'll end up filtering by date
|
// Grab more results since we'll end up filtering by date
|
||||||
cp.movie.search(movieName, NUM_RESULTS * 2).then(function (movies) {
|
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);
|
sendSearchResponse(movies, movieName, resp);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ import Alexa from 'alexa-app';
|
|||||||
import handleLaunchIntent, {
|
import handleLaunchIntent, {
|
||||||
handleFindMovieIntent,
|
handleFindMovieIntent,
|
||||||
handleAddMovieIntent,
|
handleAddMovieIntent,
|
||||||
handleAddMovieDateIntent,
|
|
||||||
handleYesIntent,
|
handleYesIntent,
|
||||||
handleNoIntent,
|
handleNoIntent,
|
||||||
handleCancelIntent,
|
handleCancelIntent,
|
||||||
@ -17,7 +16,6 @@ const app = new Alexa.app('couchPotato');
|
|||||||
app.launch(handleLaunchIntent);
|
app.launch(handleLaunchIntent);
|
||||||
app.intent('FindMovie', handleFindMovieIntent);
|
app.intent('FindMovie', handleFindMovieIntent);
|
||||||
app.intent('AddMovie', handleAddMovieIntent);
|
app.intent('AddMovie', handleAddMovieIntent);
|
||||||
app.intent('AddMovieDate', handleAddMovieDateIntent);
|
|
||||||
app.intent('AMAZON.YesIntent', handleYesIntent);
|
app.intent('AMAZON.YesIntent', handleYesIntent);
|
||||||
app.intent('AMAZON.NoIntent', handleNoIntent);
|
app.intent('AMAZON.NoIntent', handleNoIntent);
|
||||||
app.intent('AMAZON.CancelIntent', handleCancelIntent);
|
app.intent('AMAZON.CancelIntent', handleCancelIntent);
|
||||||
|
@ -29,7 +29,7 @@ export function sendSearchResponse(movies, movieName, resp) {
|
|||||||
.send();
|
.send();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function formatSearchResults(movies) {
|
export function formatSearchResults(movies, filterFn = () => { return true }) {
|
||||||
if (movies) {
|
if (movies) {
|
||||||
return movies.map((movie) => {
|
return movies.map((movie) => {
|
||||||
return {
|
return {
|
||||||
@ -39,8 +39,23 @@ export function formatSearchResults(movies) {
|
|||||||
titles: movie.titles,
|
titles: movie.titles,
|
||||||
imdb: movie.imdb
|
imdb: movie.imdb
|
||||||
}
|
}
|
||||||
});
|
}).filter(filterFn);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [];
|
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