-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlambda_function.py
More file actions
70 lines (60 loc) · 2.33 KB
/
lambda_function.py
File metadata and controls
70 lines (60 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import json
import random
import requests
import os
def random_num():
return(random.randint(1, 8))
def get_session_attributes(intent_request):
sessionState = intent_request['sessionState']
if 'sessionAttributes' in sessionState:
return sessionState['sessionAttributes']
def close(intent_request, session_attributes, fulfillment_state, message):
intent_request['sessionState']['intent']['state'] = fulfillment_state
return {
'sessionState': {
'sessionAttributes': session_attributes,
'dialogAction': {
'type': 'Close'
},
'intent': intent_request['sessionState']['intent']
},
'messages': [message],
'sessionId': intent_request['sessionId'],
'requestAttributes': intent_request['requestAttributes'] if 'requestAttributes' in intent_request else None
}
def getMovie(intent_request):
session_attributes = get_session_attributes(intent_request)
token = os.environ['token']
baseUrl = "http://image.tmdb.org/t/p/"
movieURL = "https://api.themoviedb.org/3/discover/movie?include_adult=true&include_video=false&language=en-US&page=1&sort_by=popularity.desc&with_genres=27"
headers = {
"accept": "application/json",
"Authorization": "Bearer {}".format(token)
}
randInt = random_num()
movieList = requests.get(movieURL, headers=headers)
data = movieList.json()
title = data["results"][randInt]["title"]
descr = data["results"][randInt]["overview"]
imageSize = "w300"
imagePath = data["results"][randInt]["backdrop_path"]
message = {
'contentType': 'ImageResponseCard',
'content': "{} \n {}".format(title,descr),
"imageResponseCard": {
"title": title,
"subtitle": descr[:245] + "...",
"imageUrl": "{}{}{}".format(baseUrl,imageSize,imagePath)
}
}
fulfillment_state = "Fulfilled"
return close(intent_request, session_attributes, fulfillment_state, message)
def dispatch(intent_request):
intent_name = intent_request['sessionState']['intent']['name']
response = None
# Dispatch to your bot's intent handlers
if intent_name == 'GetMovie':
return getMovie(intent_request)
def lambda_handler(event, context):
response = dispatch(event)
return response