57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
import logging
|
|
import os
|
|
from random import randint
|
|
|
|
from flask import Flask, render_template
|
|
from flask_ask import Ask, request, session, question, statement
|
|
|
|
|
|
app = Flask(__name__)
|
|
ask = Ask(app, "/")
|
|
logging.getLogger('flask_ask').setLevel(logging.DEBUG)
|
|
|
|
|
|
@ask.launch
|
|
def launch():
|
|
return get_new_fact()
|
|
|
|
|
|
@ask.intent('GetNewFactIntent')
|
|
def get_new_fact():
|
|
num_facts = 13 # increment this when adding a new fact template
|
|
fact_index = randint(0, num_facts-1)
|
|
fact_text = render_template('space_fact_{}'.format(fact_index))
|
|
card_title = render_template('card_title')
|
|
return statement(fact_text).simple_card(card_title, fact_text)
|
|
|
|
|
|
@ask.intent('AMAZON.HelpIntent')
|
|
def help():
|
|
help_text = render_template('help')
|
|
return question(help_text).reprompt(help_text)
|
|
|
|
|
|
@ask.intent('AMAZON.StopIntent')
|
|
def stop():
|
|
bye_text = render_template('bye')
|
|
return statement(bye_text)
|
|
|
|
|
|
@ask.intent('AMAZON.CancelIntent')
|
|
def cancel():
|
|
bye_text = render_template('bye')
|
|
return statement(bye_text)
|
|
|
|
|
|
@ask.session_ended
|
|
def session_ended():
|
|
return "{}", 200
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if 'ASK_VERIFY_REQUESTS' in os.environ:
|
|
verify = str(os.environ.get('ASK_VERIFY_REQUESTS', '')).lower()
|
|
if verify == 'false':
|
|
app.config['ASK_VERIFY_REQUESTS'] = False
|
|
app.run(debug=True)
|