def handle(self, handler_input): # type: (HandlerInput) -> Response logger.info("In QuizAnswerHandler") attr = handler_input.attributes_manager.session_attributes response_builder = handler_input.response_builder item = attr["quiz_item"] item_attr = attr["quiz_item"]['species'] is_ans_correct, option = util.compare_token_or_slots( handler_input=handler_input, value=item_attr) if is_ans_correct: speech = util.get_speechcon(correct_answer=True) speech += util.get_answer(item_attr, item) handler_input.attributes_manager.session_attributes = attr if option == 'miss': speech += data.SPEECH_PROUN.format(item_attr) speech += util.get_speech_description(item) speech += util.get_final_score(attr["quiz_score"], attr["counter"]) speech += data.EXIT_SKILL_MESSAGE #response_builder.set_should_end_session(True) if data.USE_CARDS_FLAG: #speech_card=speech.replace("<say-as interpret-as='interjection'>", "") #speech_card=speech_card.replace("</say-as><break strength='strong'/>, ") response_builder.set_card( ui.StandardCard(title="Final Score {}".format( str(attr["quiz_score"])), text=speech)) else: speech = util.get_speechcon(correct_answer=False) if attr['counter'] < data.MAX_QUESTIONS: attr["quiz_score"] -= 20 # Update item and item_attr for next question item = attr["quiz_item"] item_attr = attr["quiz_attr"] attr['ready'].append(item_attr) speech = util.get_hint(handler_input, attr['ready'], item) attr['counter'] += 1 if data.USE_CARDS_FLAG: response_builder.set_card( ui.StandardCard(title="Question #{}".format( str(attr["counter"])), text=speech)) else: speech = util.get_speechcon(correct_answer=False) speech += util.no_answer(item_attr) speech += util.get_speech_description(item) speech += data.EXIT_SKILL_MESSAGE return response_builder.speak(speech).ask(speech).response
def handle(self, handler_input): # type: (HandlerInput) -> Response logger.info("In DefinitionHandler") response_builder = handler_input.response_builder item, is_resolved = util.get_item( slots=handler_input.request_envelope.request.intent.slots, states_list=data.STATES_LIST) if is_resolved: if data.USE_CARDS_FLAG: response_builder.set_card( ui.StandardCard( title=util.get_card_title(item), text=util.get_card_description(item), image=ui.Image( small_image_url=util.get_small_image(item), large_image_url=util.get_large_image(item) ))) if util.supports_display(handler_input): img = Image( sources=[ImageInstance(url=util.get_large_image(item))]) title = util.get_card_title(item) primary_text = get_plain_text_content( primary_text=util.get_card_description(item)) response_builder.add_directive( RenderTemplateDirective( BodyTemplate2( back_button=BackButtonBehavior.VISIBLE, image=img, title=title, text_content=primary_text))) response_builder.speak( util.get_speech_description(item)).ask(data.REPROMPT_SPEECH) else: response_builder.speak( util.get_bad_answer(item)).ask(util.get_bad_answer(item)) return response_builder.response