コード例 #1
0
def intentRouter(event, context):
    intent = event['request']['intent']['name']
    logic = Logic()
    # Custom Intents
    if intent == 'FormulaIntent':
        text = 'Let\'s learn maths formula...\n'
        for i in logic.formula.keys():
            # text = text + logic.formula[i] + '<break time="1s">'
            text = text + logic.formula[i]
            text = text + '<break time="2s"/>'
        return sayWithoutCards(text)
    elif intent == 'SineIntent':
        value = event['request']['intent']['slots']['value']['value']
        value = float(value)
        text = 'The sine of ' + str(value) + ' is ' + str(logic.sine(value))
        return say('Answer', text)
    elif intent == 'CosineIntent':
        value = event['request']['intent']['slots']['value']['value']
        value = float(value)
        text = 'The cosine of ' + str(value) + ' is ' + str(
            logic.cosine(value))
        return say('Answer', text)
    elif intent == 'TangentIntent':
        value = event['request']['intent']['slots']['value']['value']
        value = float(value)
        text = 'The tangent of ' + str(value) + ' is ' + str(
            logic.tangent(value))
        return say('Answer', text)
    elif intent == 'CosecIntent':
        value = event['request']['intent']['slots']['value']['value']
        value = float(value)
        text = 'The cosec of ' + str(value) + ' is ' + str(
            1 / logic.sine(value))
        return say('Answer', text)
    elif intent == 'SecantIntent':
        value = event['request']['intent']['slots']['value']['value']
        value = float(value)
        text = 'The secant of ' + str(value) + ' is ' + str(
            1 / logic.cosine(value))
        return say('Answer', text)
    elif intent == 'CotIntent':
        value = event['request']['intent']['slots']['value']['value']
        value = float(value)
        text = 'The cot of ' + str(value) + ' is ' + str(
            1 / logic.tangent(value))
        return say('Answer', text)
    elif intent == 'FactorialIntent':
        value = event['request']['intent']['slots']['value']['value']
        value = int(value)
        text = 'The factorial of ' + str(value) + ' is ' + str(
            logic.factorial(value))
        return say('Answer', text)
    elif intent == 'PowerIntent':
        ''' Here a is the base and b is the exponent'''
        a = event['request']['intent']['slots']['a']['value']
        b = event['request']['intent']['slots']['b']['value']
        a = int(a)
        b = int(b)
        text = 'The value of ' + str(a) + ' to the power ' + str(
            b) + ' is ' + str(a**b)
        return say('Answer', text)
    elif intent == 'NaturalNumbersIntent':
        n = event['request']['intent']['slots']['n']['value']
        n = int(n)
        text = 'The Sum of the first ' + str(n) + ' Natural Numbers is ' + str(
            logic.sumOfNaturalNumbers(n))
        return say('Answer', text)
    elif intent == 'nPrIntent':
        n = event['request']['intent']['slots']['n']['value']
        r = event['request']['intent']['slots']['r']['value']
        n = int(n)
        r = int(r)
        text = 'The value of ' + str(n) + ' P ' + str(r) + ' is ' + str(
            logic.factorial(n) // (logic.factorial(n - r)))
        return say('Answer', text)
    elif intent == 'nCrIntent':
        n = event['request']['intent']['slots']['n']['value']
        r = event['request']['intent']['slots']['r']['value']
        n = int(n)
        r = int(r)
        text = 'The value of ' + str(n) + ' C ' + str(r) + ' is ' + str(
            logic.factorial(n) //
            (logic.factorial(n - r) * logic.factorial(r)))
        return say('Answer', text)
    elif intent == 'AboutIntent':
        text = 'I was created by Rajdeep Roy Chowdhury. '
        return say('Developer', text)
    # Required Intents
    elif intent == "AMAZON.CancelIntent":
        return sayWithoutCards("Ok! Cancelling...")
    elif intent == "AMAZON.HelpIntent":
        text = (
            'You can ask me to calculate trigonometric functions, Factorials,'
            'Exponents, Permutations and combinations. I would learn more functions as soon as possible.'
        )
        return sayAndListen('Help', text)
    elif intent == "AMAZON.StopIntent":
        return sayWithoutCards("Ok! Stopping...")
    else:
        return say(
            'Oops',
            'Oops! This option is invalid right now, it might be available in the next version.'
        )