def handle(self, handler_input): slots = handler_input.request_envelope.request.intent.slots #User-given answer Answer = slots["Answer"].value attr = handler_input.attributes_manager.persistent_attributes #Correct answer data.GLOBAL_ANSWER = attr['global_answer'] #want to add in: #hints #limited number of attempts #add missing phrasing response? response_builder = handler_input.response_builder #if the user-given answer contains the correct answer, give the correct answer response if Answer.find(data.GLOBAL_ANSWER) == 0: response_builder.set_card( ui.StandardCard( title = "Correct!", text= data.CORRECT_ANSWER_RESPONSE + " The answer is " + data.GLOBAL_ANSWER + ".", image = ui.Image( small_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download", large_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download" ))) return response_builder.speak(data.CORRECT_ANSWER_RESPONSE).response #if the user-given answer contains the incorrect answer, give the incorrect answer response elif Answer.find(data.GLOBAL_ANSWER) != 0: response_builder.set_card( ui.StandardCard( title = "Incorrect Answer", text= data.WRONG_ANSWER_RESPONSE, image = ui.Image( small_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download", large_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download" ))) return response_builder.speak(data.WRONG_ANSWER_RESPONSE).response
def handle(self, handler_input): attr = handler_input.attributes_manager.persistent_attributes height = attr.get('height', 0) speech = Speech() speech.add_text('次は水を上げて欲しいな。楽しみに待っています。') speech_text = speech.speak() cactus_image = utils.ImageGetter().get_image(utils.get_level(height), utils.select_scene()) ret_img = Image(sources=[ImageInstance(url=cactus_image)]) title = data.SKILL_NAME primary_text = get_plain_text_content(primary_text="") if utils.supports_apl(handler_input): handler_input.response_builder.add_directive( RenderTemplateDirective( BodyTemplate2( back_button=BackButtonBehavior.VISIBLE, image=ret_img, title=title, text_content=primary_text))).set_should_end_session( True) handler_input.response_builder.set_card( ui.StandardCard(title=data.get_standard_card_title(height), text=data.get_standard_card_text(height), image=ui.Image(small_image_url=cactus_image, large_image_url=cactus_image))) return handler_input.response_builder.speak(speech_text).response
def handle(self, handler_input): speech_text = """ 勇者「屋上ですね!かしこまりました!」 <audio src="soundbank://soundlibrary/human/amzn_sfx_person_running_03"/> <audio src="soundbank://soundlibrary/doors/doors_wood/wood_06"/> 盲目の生徒「すまない。耳をすましているが、何も聞こえない。。。」 勇者「そうか。何かあったら教えてくれ。 <break time="1s"/> 神よ、次はどうすればよろしいでしょうか? """ handler_input.response_builder.speak( speech_text).set_should_end_session(False) session = handler_input.attributes_manager.session_attributes session['oracle_limit'] = session['oracle_limit'] - 1 session['scene'] = 'explore.rooftop' session['re_ask'] = '勇者「神よ、次はどうすればよろしいでしょうか?」' image_url = assets.get_image('humans/hero/hero_stand_512') handler_input.response_builder.set_card( ui.StandardCard(title='勇者「神よ、次はどうすればよろしいでしょうか?」', text='・図書館へ行く\r\n' '・闘技場へ行く\r\n' '・屋上へ行く', image=ui.Image(small_image_url=image_url, large_image_url=image_url))) return handler_input.response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response speak_output = "Okay. I've put 60 seconds on the clock. Let's begin!" gameSession.start() handler_input.response_builder.set_card( ui.StandardCard( title="Card Match Game", text="Welcome to Card Match Game!", image=ui.Image( small_image_url= "https://d2o906d8ln7ui1.cloudfront.net/images/BT7_Background.png", large_image_url= "https://d2o906d8ln7ui1.cloudfront.net/images/BT2_Background.png" ))) ##### comment codes below for online simulation handler_input.response_builder.add_directive( LaunchDirective( VideoItem( source= "https://cardmatchgamevideo.s3.amazonaws.com/clock1.mp4", metadata=Metadata(title="Card Match Game", subtitle="Clock")))) ### end of your comment return (handler_input.response_builder.speak(speak_output).ask( "You can ask the color of center left symbol").set_card( SimpleCard( "Card Match Game", "You can ask, 'the color of center left symbol'")).response )
def handle(self, handler_input): speech_text = """ 勇者「控室ですね!どんな手がかりがあるんだろう...?」 筋肉質なおじさん「ふんっ!ふんっ!今日も剣術の稽古は気持ちがいいなぁ!」 勇者「すみません、この辺りで「キャリネズミ」というモンスターを見ませんでしたか?」 筋肉質なおじさん「すまない、稽古にむちゅうで、何も見ていない。」 勇者「そうですか、、、」 筋肉質なおじさん「そんなことより、稽古に付き合ってくれないか?久々に実力者と手合わせ願いたい!」 勇者「すみません、急いでいて。また今度お願いします!」 筋肉質なおじさん「そうか、ではまた今度頼む。」 <audio src="soundbank://soundlibrary/ui/gameshow/amzn_ui_sfx_gameshow_intro_01"/> 勇者「うーん、他に手がかりがありそうなのはどこだろう、、、?」 """ handler_input.response_builder.speak( speech_text).set_should_end_session(False) session = handler_input.attributes_manager.session_attributes session['scene'] = 'explore.colosseum' session['oracle_limit'] = session['oracle_limit'] - 1 session['re_ask'] = '勇者「他に手がかりがありそうなのはどこだろう、、、?」' image_url = assets.get_image('humans/hero/hero_stand_512') handler_input.response_builder.set_card( ui.StandardCard(title='勇者「他に手がかりがありそうなのはどこだろう、、、?」', text='・客席\r\n' '・倉庫\r\n' '・控室\r\n' '・図書館へ行く\r\n' '・闘技場へ行く\r\n' '・屋上へ行く', image=ui.Image(small_image_url=image_url, large_image_url=image_url))) return handler_input.response_builder.response
def handle(self, handler_input): speech_text = """ 勇者「倉庫ですね!どんな手がかりがあるんだろう...? すごく良い品質の剣がたくさん並んでいる。これなんか特に一級品だ。手入れも行き届いている。良い学校だ。 ん?倉庫の床に小さな穴が開いている。こんなに手入れも行き届いている学校なのになぜ? 」 <audio src="soundbank://soundlibrary/ui/gameshow/amzn_ui_sfx_gameshow_intro_01"/> 勇者「うーん、他に手がかりがありそうなのはどこだろう、、、?」 """ handler_input.response_builder.speak( speech_text).set_should_end_session(False) session = handler_input.attributes_manager.session_attributes session['scene'] = 'explore.colosseum' session['oracle_limit'] = session['oracle_limit'] - 1 session['re_ask'] = '勇者「他に手がかりがありそうなのはどこだろう、、、?」' image_url = assets.get_image('humans/hero/hero_stand_512') handler_input.response_builder.set_card( ui.StandardCard(title='勇者「他に手がかりがありそうなのはどこだろう、、、?」', text='・客席\r\n' '・倉庫\r\n' '・控室\r\n' '・図書館へ行く\r\n' '・闘技場へ行く\r\n' '・屋上へ行く', image=ui.Image(small_image_url=image_url, large_image_url=image_url))) return handler_input.response_builder.response
def handle(self, handler_input): speech_text = """ 勇者「図書館ですね!かしこまりました!」 <audio src="soundbank://soundlibrary/human/amzn_sfx_person_running_03"/> <audio src="soundbank://soundlibrary/doors/doors_wood/wood_06"/> 勇者「ここが図書館かぁ。うーん、役に立ちそうな本はどれだろう、、、?」 """ handler_input.response_builder.speak( speech_text).set_should_end_session(False) session = handler_input.attributes_manager.session_attributes session['scene'] = 'explore.library' session['oracle_limit'] = session['oracle_limit'] - 1 session['re_ask'] = '勇者「役に立ちそうな本はどれだろう、、、?」' image_url = assets.get_image('humans/hero/hero_stand_512') handler_input.response_builder.set_card( ui.StandardCard(title='勇者「役に立ちそうな本はどれだろう、、、?」', text='・妖精のかくれんぼ\r\n' '・スキル「シノビアシ」\r\n' '・魔法の猫「プレシャ」\r\n' '・図書館へ行く\r\n' '・闘技場へ行く\r\n' '・屋上へ行く', image=ui.Image(small_image_url=image_url, large_image_url=image_url))) return handler_input.response_builder.response
def build_response(handler_input, card_title, card_text, speech_text, img_tuple=None, end_session=False): if handler_input.attributes_manager.session_attributes["drunk_mode_state"]: speech_text = '<prosody rate="slow"><emphasis level="strong">' + speech_text + '</emphasis></prosody>' if img_tuple and supports_display(handler_input): card = StandardCard(card_title, card_text, ui.Image(img_tuple[1], img_tuple[1])) img = Image('Meme', [ImageInstance(url=img_tuple[1])]) reddit_text = TextContent(primary_text=PlainText(img_tuple[0]), secondary_text=PlainText(img_tuple[2])) directive = RenderTemplateDirective( BodyTemplate2(back_button=BackButtonBehavior.VISIBLE, image=img, title=card_title, text_content=reddit_text)) handler_input.response_builder.speak(speech_text).set_card( card).add_directive(directive).set_should_end_session(end_session) else: card = SimpleCard(card_title, card_text) handler_input.response_builder.speak(speech_text).set_card( card).set_should_end_session(end_session) return handler_input.response_builder.response
def handle(self, handler_input): speech_text = """ 勇者「闘技場ですね!かしこまりました!」 <audio src="soundbank://soundlibrary/human/amzn_sfx_person_running_03"/> 勇者「闘技場に到着いたしました、、、手がかりはどこにあるだろう、、、?」 """ handler_input.response_builder.speak( speech_text).set_should_end_session(False) session = handler_input.attributes_manager.session_attributes session['scene'] = 'explore.colosseum' session['oracle_limit'] = session['oracle_limit'] - 1 session['re_ask'] = '勇者「手がかりはどこにあるだろう、、、?」' image_url = assets.get_image('humans/hero/hero_stand_512') handler_input.response_builder.set_card( ui.StandardCard(title='勇者「手がかりはどこにあるだろう、、、?」', text='・客席\r\n' '・倉庫\r\n' '・控室\r\n' '・図書館へ行く\r\n' '・闘技場へ行く\r\n' '・屋上へ行く', image=ui.Image(small_image_url=image_url, large_image_url=image_url))) return handler_input.response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response logger.info("In NewGameHandler") attr = handler_input.attributes_manager.session_attributes attr["board"] = util.clear_board() attr["state"] = STATE_SETTING_UP_BOARD attr["setup_board_ship_code"] = data.PIECES["patrol_boat"]["code"] attr["setup_board_ship_count"] = 0 user_id = handler_input.request_envelope.session.user.user_id response_builder = handler_input.response_builder rsp = random.choice(data.PLACE_PIECE_RESPONSE) + data.SHIPS[0] + ", " + random.choice(data.PLACE_PIECE_SIZE) + str(data.PIECES[util.get_ship_id(data.SHIPS[0])]["size"]) + "?" r = drawboard.draw_board_with_ships(user_id, attr["board"], "user") print(r) user_board_image = dbcontroller.get_board_img(user_id, "user") response_builder.set_card(ui.StandardCard( title = data.SHIPS[0].title(), text = rsp, image = ui.Image(small_image_url = user_board_image, large_image_url = user_board_image))) response_builder.speak(rsp).ask(rsp) return response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response slots = handler_input.request_envelope.request.intent.slots QType = slots["QType"].value GLevel = slots["GLevel"].value questionanswer_attributes = { "global_answer": data.GLOBAL_NULL, "global_question": data.GLOBAL_NULL, "last_question_asked": data.GLOBAL_NULL, "global_GLevel": data.GLOBAL_NULL, "global_QType": data.GLOBAL_NULL } #Calls askQuestion method, which pulls question and answer pair based on topic & grade #Result returned is split at the colon into a question and an answer #The split question and answer strings are stored in an array, qa_array qa_array = askQuestion(QType, GLevel).split(':') #Question and Answer are at spots 0 & 1, respectively, in the qa_array question_string = qa_array[0] question_answer = qa_array[1] #constants from data.py are overwritten by the new strings data.GLOBAL_ANSWER = question_answer data.GLOBAL_QUESTION = question_string data.LAST_QUESTION_ASKED = question_string + ":" + question_answer data.GLOBAL_GLEVEL = GLevel data.GLOBAL_QTYPE = QType attributes_manager = handler_input.attributes_manager #makes a persistent copy of important data #Testing for user re-asking questions - Dalton questionanswer_attributes = { "global_answer": data.GLOBAL_ANSWER, "global_question": data.GLOBAL_QUESTION, "last_question_asked": data.LAST_QUESTION_ASKED, "global_GLevel": data.GLOBAL_GLEVEL, "global_QType": data.GLOBAL_QTYPE } attributes_manager.persistent_attributes = questionanswer_attributes attributes_manager.save_persistent_attributes() #speaks the question #listens for the answer- if it's invalid and can't go on to the next method (e.g. doesn't include "what is") #the ANSWER_CLARIFICATION_REQUEST is asked questiontypedisplay = "placeholder string" if (data.GLOBAL_QTYPE) == "math": questiontypedisplay = "Math" else: questiontypedisplay = "Coding" response_builder = handler_input.response_builder response_builder.set_card( ui.StandardCard( title = questiontypedisplay + " Question for " + data.GLOBAL_GLEVEL + " Grade", text= data.GLOBAL_QUESTION, image = ui.Image( small_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download", large_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download" ))) return handler_input.response_builder.speak(question_string).ask(data.ANSWER_CLARIFICATION_REQUEST).response
def handle(self, handler_input): # type: (HandlerInput) -> Response fof_sfn_input = { 'alexa_user_id': handler_input.request_envelope.context.system.user.user_id, 'IsPreResponse': True, 'intent': 'CancelOrStopIntent', 'env_type': util.get_env_type(handler_input) } response = sfn_ctl.execute(fof_sfn_input) handler_input.response_builder.speak(response["response_text"]) image_url = response.get('image_url') if image_url: handler_input.response_builder.set_card( ui.StandardCard( title='', text='', image=ui.Image( small_image_url=image_url, large_image_url=image_url ) ) ) handler_input.response_builder.set_should_end_session(True) return handler_input.response_builder.response
def handle(self, handler_input): speech_text = """ 勇者「客席ですね!どんな手がかりがあるんだろう...?」 読書している人「やぁ。どうかした?」 勇者「実は訳あって、キャリネズミというモンスターをさがしているんだ。君はみていない?」 読書している人「ごめん、読書に夢中で。あ!でもキャリネズミって、確かものすごく隠れるのが得意なモンスターだよね?」 勇者「そうなんだよ!そのせいでさがし辛くて困っているんだ」 読書している人「確か図書館でそんな感じの本を読んだ事がある気がするなぁ。うちの図書館はいろんな本があって、情報ならたいてい揃うよ」 勇者「そっか!ありがとう!」 読書している人「うん、がんばってねー!」 <audio src="soundbank://soundlibrary/ui/gameshow/amzn_ui_sfx_gameshow_intro_01"/> 勇者「うーん、他に手がかりがありそうなのはどこだろう、、、?」 """ handler_input.response_builder.speak( speech_text).set_should_end_session(False) session = handler_input.attributes_manager.session_attributes session['scene'] = 'explore.colosseum' session['oracle_limit'] = session['oracle_limit'] - 1 session['re_ask'] = '勇者「他に手がかりがありそうなのはどこだろう、、、?」' image_url = assets.get_image('humans/hero/hero_stand_512') handler_input.response_builder.set_card( ui.StandardCard(title='勇者「他に手がかりがありそうなのはどこだろう、、、?」', text='・客席\r\n' '・倉庫\r\n' '・控室\r\n' '・図書館へ行く\r\n' '・闘技場へ行く\r\n' '・屋上へ行く', image=ui.Image(small_image_url=image_url, large_image_url=image_url))) return handler_input.response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response # Get configurayion informatoin result = getConfig() VERSION = result["release_info"]["version"] SMALL_IMAGE = result["Welcome_small_image"] LARGE_IMAGE = result["Welcome_large_image"] # Retrieve the API version api_version=info(1,"","api-version","") # Retrieve users's locale...... locale=get_locale(handler_input) # ..... and get their language index...... langindex=0 lang=0 for language in result['i8n']['languages']: if language['language'] == locale: lang=langindex langindex = langindex+1 # ..... to get their welcome settings. speak_output = result['i8n']['languages'][lang]['settings']['Welcome_speech'] card_text = result['i8n']['languages'][lang]['settings']['Welcome_card_text'] + "\nSkill Version: " + VERSION + "\nAPI Version: " + api_version card_title = result["release_info"]["skill_name"] # MAYBE STORE THE JSON AND THE INDEX FOR THE VERSION STUFF IN A CUSTOM SLOT SO WE DONT HAVE TO GO BACK TO THE WEB EVERY TIME - EFFICIENCY-ISE.....? #LandingZoneList slot population (using dynamic entities) results = landingpads(1,"","getLandingPadsList","None") R=[] for pad in results: R.append(Entity(id=pad["id"].replace("-",""), name=EntityValueAndSynonyms(value=pad["full_name"], synonyms=["X","Y"]))) lzlist_entity_directive = DynamicEntitiesDirective( update_behavior=UpdateBehavior.REPLACE, types=[EntityListItem(name="LandingZoneList", values=R)], ) return ( handler_input.response_builder .speak(speak_output) .ask(speak_output) .add_directive(lzlist_entity_directive) .set_card( ui.StandardCard( title = card_title, text = card_text, image = ui.Image(SMALL_IMAGE,LARGE_IMAGE) ) ) .response )
def handle(self, handler_input): # type: (HandlerInput) -> Response destinations_choice = handler_input.attributes_manager.session_attributes.get( 'destinations_choice') fof_sfn_input = { 'alexa_user_id': handler_input.request_envelope.context.system.user.user_id, 'IsPreResponse': False, 'state': 'Launch', 'destinations_choice': destinations_choice, 'env_type': util.get_env_type(handler_input) } response = sfn_ctl.execute(fof_sfn_input) if response.get('destinations_choice'): handler_input.attributes_manager.session_attributes[ 'destinations_choice'] = response['destinations_choice'] handler_input.attributes_manager.session_attributes['state'] = \ response['state'] if response.get('node'): handler_input.attributes_manager.session_attributes['node'] = \ response['node'] print(f'response: {response}, type: {type(response)}') speech_text = response["response_text"] image_url = response.get('image_url') bg_image_url = response.get('bg_image_url') image_title = response.get('image_title') image_text = response.get('image_text') if image_url: img_obj = Image(sources=[ImageInstance(url=image_url)]) bg_img_obj = Image(sources=[ImageInstance(url=bg_image_url)]) if util.is_support_display(handler_input): handler_input.response_builder.add_directive( RenderTemplateDirective( BodyTemplate7( back_button=BackButtonBehavior.VISIBLE, image=img_obj, background_image=bg_img_obj, title='') ) ) else: handler_input.response_builder.set_card( ui.StandardCard( title='', text='', image=ui.Image( small_image_url=image_url, large_image_url=image_url ) ) ) handler_input.response_builder.speak(speech_text).ask( speech_text).set_should_end_session( response.get('set_should_end_session', True)) return handler_input.response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response logger.info("In QuizHandler") attr = handler_input.attributes_manager.session_attributes attr["state"] = "QUIZ" attr["counter"] = 0 attr["quiz_score"] = 0 attr["score"] = 0 question = util.ask_question(handler_input) response_builder = handler_input.response_builder response_builder.speak(data.START_QUIZ_MESSAGE + ( "Here is your {} question. " ).format(util.get_ordinal_indicator(attr["counter"])) + question) response_builder.ask(question) logger.info("after question asked") if data.USE_CARDS_FLAG: item = attr["quiz_item"] response_builder.set_card( ui.StandardCard( title="Question #1", text=data.START_QUIZ_MESSAGE + question, image=ui.Image( small_image_url=util.get_small_image(item), large_image_url=util.get_large_image(item)))) logger.info("after USE_CARDS_FLAG") if util.supports_display(handler_input): item = attr["quiz_item"] item_attr = attr["quiz_attr"] title = "Question #{}".format(str(attr["counter"])) background_img = Image(sources=[ ImageInstance(url=util.get_image( ht=1024, wd=600, label=item["abbreviation"])) ]) item_list = [] for ans in util.get_multiple_choice_answers( item, item_attr, data.STATES_LIST): item_list.append( ListItem( token=ans, text_content=get_plain_text_content(primary_text=ans))) response_builder.add_directive( RenderTemplateDirective( ListTemplate1(token="Question", back_button=BackButtonBehavior.HIDDEN, background_image=background_img, title=title, list_items=item_list))) logger.info("about to return") return response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response logger.info("In LaunchRequestHandler") # handler_input.response_builder.speak(WELCOME_MESSAGE).ask( # HELP_MESSAGE) response_builder = handler_input.response_builder speech = PRIMARY_TEXT viewport_state = handler_input.request_envelope.context.viewport if not viewport_state: speech = "La Skill funziona solo sui device con schermo" response_builder.speak(speech) return response_builder.set_should_end_session(True).response response_builder.speak(speech) if USE_CARDS_FLAG: response_builder.set_card( ui.StandardCard(title=TITLE, text=PRIMARY_TEXT, image=ui.Image( small_image_url=IMG_PATH, large_image_url=IMG_PATH, ))) if supports_display(handler_input) and not supports_APL(handler_input): logger.info("Supports Display") title = TITLE fg_img7 = Image(content_description=PRIMARY_TEXT, sources=[ImageInstance(url=IMG_PATH)]) response_builder.add_directive( RenderTemplateDirective( BodyTemplate7(back_button=BackButtonBehavior.HIDDEN, image=fg_img7, title=title))) if supports_APL(handler_input): logger.info("Supports APL") response_builder.add_directive( RenderDocumentDirective( token=APP_NAME + "_Token", document=_load_apl_document("RadarMeteoAPL.json"), datasources={"param": { 'url': IMG_PATH }})).add_directive( ExecuteCommandsDirective( token=APP_NAME + "_Token", commands=[ IdleCommand(delay=5, description="wait_a_bit") ])).add_directive( ExecuteCommandsDirective( token=APP_NAME + "_Token", commands=[ IdleCommand(delay=5, description="last command") ])) return response_builder.set_should_end_session(True).response
def handle(self, handler_input): # type: (HandlerInput) -> Response response_builder.set_card( ui.StandardCard( title = "See you next time!", text= data.STOP_CANCEL_OUTPUT, image = ui.Image( small_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download", large_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download" ))) return handler_input.response_builder.speak(data.STOP_CANCEL_OUTPUT).response
def get_assessment_standard_card(subject, question): image = "{}{}.png".format(CARD_FOLDER, question['card']) card = ui.StandardCard( title=subject, text=" ", image=ui.Image( small_image_url=image, large_image_url=image ) ) return card
def include_display(response_builder): #Card Code response_builder.set_card( ui.StandardCard( title="Adventure Guru", text="A Standard Card has text and image.", image=ui.Image( small_image_url= "https://d1yy08fpd1djho.cloudfront.net/travel-small.jpeg", large_image_url= "https://d1yy08fpd1djho.cloudfront.net/travel-large.jpeg")))
def handle(self, handler_input): speech_text = """ 勇者「屋上ですね!かしこまりました!」 <audio src="soundbank://soundlibrary/human/amzn_sfx_person_running_03"/> 勇者「音を聞くんじゃない!何も聞こえないところに耳をすますんだ!」 盲目の生徒「そうか、、、わかった!やってみる!」 <audio src="soundbank://soundlibrary/backgrounds_ambience/public_space/public_space_01"/> <audio src="soundbank://soundlibrary/kids/kids_05"/> <break time="3s"/> 盲目の生徒「わかったぞ!闘技場の倉庫の裏だ!」 勇者「す、すごい!ありがとう!行こう!」 <audio src="soundbank://soundlibrary/human/amzn_sfx_person_running_03"/> 勇者「先生、闘技場の倉庫の裏です!」 先生「え、わ、わかったわ!」 <audio src="soundbank://soundlibrary/human/amzn_sfx_person_running_03"/> <break time="2s"/> 勇者「すごいよ!本当に見つけてしまうなんて!」 先生「やっぱりあなたは天才よ!」 盲目の生徒「たいしたことはしてないよ。」 勇者「いいや、紛れもない、本当の天才だ!」 先生「あなたにここまでの才能があったなんて!」 盲目の生徒「あ、ありがとうございます!」 いじめっこB「わ、わるかったな」 いじめっこA「たすかったぜ。恩に着る。」 盲目の生徒「うん。」 <break time="2s"/> こうして、ソルジャースクールのみんなは救われ、平穏をとりもどした。 勇者はソルジャースクールを後にし、旅立った。 この盲目の生徒が、後に「盲目の狩人」と呼ばれるのは、また別のお話。 <break time="3s"/> おしまい。 <break time="3s"/> オルぺ「課題クリアおめでとう!君、才能ありまちゅね。 次は、どの課題に挑戦しまちゅか?」 """ handler_input.response_builder.speak( speech_text).set_should_end_session(False) session = handler_input.attributes_manager.session_attributes session['scene'] = 'gods_world' session['re_ask'] = 'オルぺ「どの課題に挑戦しまちゅか?」' image_url = assets.get_image( 'humans/blind_hunter/blind_hunter_found_512') handler_input.response_builder.set_card( ui.StandardCard(title='盲目の生徒', text='「わかったぞ!闘技場の倉庫の裏だ!」', image=ui.Image(small_image_url=image_url, large_image_url=image_url))) return handler_input.response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response logger.info("In QuizHandler") attr = handler_input.attributes_manager.session_attributes attr["state"] = "QUIZ" attr["counter"] = 0 attr["quiz_score"] = 0 response_builder = handler_input.response_builder response_builder.speak(data.START_QUIZ_MESSAGE) util.initdata() # question = util.ask_question(handler_input) question = util.ask_my_question(handler_input) response_builder.speak(question) response_builder.ask(question) if data.USE_CARDS_FLAG: item = attr["quiz_item"] response_builder.set_card( ui.StandardCard( title="Question #1", text=data.START_QUIZ_MESSAGE + question, 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): # item = attr["quiz_item"] # item_attr = attr["quiz_attr"] # title = "Question #{}".format(str(attr["counter"])) # background_img = Image( # sources=[ImageInstance( # url=util.get_image( # ht=1024, wd=600, label=item["abbreviation"]))]) # item_list = [] # for ans in util.get_multiple_choice_answers( # item, item_attr, data.STATES_LIST): # item_list.append(ListItem( # token=ans, # text_content=get_plain_text_content(primary_text=ans))) # response_builder.add_directive( # RenderTemplateDirective( # ListTemplate1( # token="Question", # back_button=BackButtonBehavior.HIDDEN, # background_image=background_img, # title=title, # list_items=item_list))) return response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response #speaks help message and listens for a response to navigate to different spot in the program response_builder = handler_input.response_builder response_builder.set_card( ui.StandardCard( title = "Help", text= data.HELP_MESSAGE, image = ui.Image( small_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download", large_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download" ))) return handler_input.response_builder.speak(data.HELP_MESSAGE).ask(data.HELP_MESSAGE).response
def get_lesson_card(slide): card = None card_image = slide['card_image'] title = slide['title'] content = slide['voice'] if card_image == "": card = ui.SimpleCard(title=title, content=content) elif 'https' not in card_image: card = ui.SimpleCard(title=title, content=card_image) else: card = ui.StandardCard(title=title, text=" ", image=ui.Image( small_image_url=card_image, large_image_url=card_image)) return card
def boss_info_intent_handler(handler_input): # type: (HandlerInput) -> Response query = get_slot_value(handler_input, 'bossname') if not query: attr = handler_input.attributes_manager.persistent_attributes cur_char = Character(attr['character']) query = data.BOSS_OF_FLOOR[cur_char.floor - 1] logger.info('query:' + query) if query and query in data.MOB_INFO: info = data.MOB_INFO[query] speech_text = 'Boss {}. It has attack of {}, defense of {}, and HP of {}. '.format( query.title(), info['attack'], info['defense'], info['hp']) if len(info['skill']): speech_text += 'Also, it can use {}'.format(info['skill']) title = 'Boss Info: ' + query.title() text = 'HP: {} \nAttack: {} Defense: {}\n Agility: {} Dexterity: {}'.format( info['hp'], info['attack'], info['defense'], info['speed'], info['cast_speed']) if len(info['skill']): text += '\n Skill: {}'.format(info['skill']) handler_input.response_builder.set_card( ui.StandardCard(title=title, text=text, image=ui.Image( small_image_url=data.MONSTER_AVATAR[query], large_image_url=data.MONSTER_AVATAR[query]))) if supports_display(handler_input): img = Image( sources=[ImageInstance(url=data.MONSTER_AVATAR[query])]) primary_text = 'HP: {} <br/>Attack: {} <br/>Defense: {}<br/> Agility: {} <br/>Dexterity: {}'.format( info['hp'], info['attack'], info['defense'], info['speed'], info['cast_speed']) if len(info['skill']): primary_text += '<br/> Skill: {}'.format(info['skill']) primary_text = get_rich_text_content(primary_text) handler_input.response_builder.add_directive( RenderTemplateDirective( BodyTemplate2(back_button=BackButtonBehavior.VISIBLE, image=img, title=title, text_content=primary_text))) else: speech_text = "You can ask me the current floor's boss or any boss with a name " handler_input.response_builder.speak(speech_text).set_should_end_session( False) return handler_input.response_builder.response
def skill_info_intent_handler(handler_input): # type: (HandlerInput) -> Response query = get_slot_value(handler_input, 'skill') if not query: speech_text = "You can ask me a skill with a name. " elif query.title() in data.SKILL_INFO: info = data.SKILL_INFO[query.title()] speech_text = '{} has damage rate of {}. It needs {} time units to cast, and costs {} MP. '.format( query.title(), info['rate'], info['cast'], info['mp']) title = 'Skill Info: ' + query.title() text = 'Damage Rate: {}\n Cast Time: {}\n MP cost: {}'.format( info['rate'], info['cast'], info['mp']) if info['effect']: speech_text += 'Also, it can make the enemy into {}'.format( info['effect']) text += '\n Effect: {}'.format(info['effect']) handler_input.response_builder.set_card( ui.StandardCard(title=title, text=text, image=ui.Image( small_image_url=data.MONSTER_AVATAR['?'], large_image_url=data.MONSTER_AVATAR['?']))) if supports_display(handler_input): img = Image(sources=[ImageInstance(url=data.MONSTER_AVATAR['?'])]) primary_text = 'Damage Rate: {}<br/> Cast Time: {} MP cost: {}'.format( info['rate'], info['cast'], info['mp']) if info['effect']: primary_text += '<br/> Effect: {}'.format(info['effect']) primary_text = get_rich_text_content(primary_text) handler_input.response_builder.add_directive( RenderTemplateDirective( BodyTemplate2(back_button=BackButtonBehavior.VISIBLE, image=img, title=title, text_content=primary_text))) else: speech_text = '{} is not a skill. '.format(query.title()) logger.info('query:' + query) handler_input.response_builder.speak(speech_text).set_should_end_session( False) return handler_input.response_builder.response
def handle(self, handler_input): # type: (HandlerInput) -> Response units = handler_input.attributes_manager.session_attributes["Units"] loc = roadster(1, str(units), "distance") speak_output = "It is " + str(loc) return (handler_input.response_builder.speak(speak_output).ask( speak_output ).set_card( ui.StandardCard( title="Elon Musk's Tesla Roadster", text= "The Roadster, picture with Earth in background. 'Spaceman' mannequin wearing SpaceX Spacesuit in driving seat. The camera is mounted on an external boom.", image=ui.Image( "https://upload.wikimedia.org/wikipedia/commons/2/20/Elon_Musk%27s_Tesla_Roadster_%2840110304192%29.jpg", "https://upload.wikimedia.org/wikipedia/commons/2/20/Elon_Musk%27s_Tesla_Roadster_%2840110304192%29.jpg" ))).response)
def handle(self, handler_input): last_watered_date = utils.get_last_watered_date(handler_input) height = utils.get_cactus_height(handler_input) speech_text = LaunchResponseCreator().create_response( height, last_watered_date, handler_input) cactus_image = utils.ImageGetter().get_image(utils.get_level(height), utils.select_scene()) logger.info(f'launch_h, cactus_image: {cactus_image}') ret_img = Image(sources=[ImageInstance(url=cactus_image)]) primary_text = get_plain_text_content(primary_text="") if utils.supports_apl(handler_input): handler_input.response_builder.add_directive( RenderTemplateDirective( BodyTemplate2(back_button=BackButtonBehavior.VISIBLE, image=ret_img, title=data.SKILL_NAME, text_content=primary_text))) handler_input.response_builder.set_card( ui.StandardCard(title=data.get_standard_card_title(height), text=data.get_standard_card_text(height), image=ui.Image(small_image_url=cactus_image, large_image_url=cactus_image))) should_end_session = True status = 'check_state' scene = get_scene(handler_input) if scene == 'water': should_end_session = False status = 'confirmation' elif scene == 'upsell': should_end_session = False status = 'isp_better_water' handler_input.attributes_manager.session_attributes['status'] = status if should_end_session: return handler_input.response_builder.speak( speech_text).set_should_end_session( should_end_session).response return handler_input.response_builder.speak(speech_text).ask( speech_text).set_should_end_session(should_end_session).response
def handle(self, handler_input): speech_text = "オルぺ「また挑戦してね!」" handler_input.response_builder.speak(speech_text) image_url = assets.get_image('gods/orphe/orphe-stand') handler_input.response_builder.set_card( ui.StandardCard( title='オルぺ', text='「また挑戦ちてね!」', image=ui.Image( small_image_url=image_url, large_image_url=image_url ) ) ) return handler_input.response_builder.response
def handle(self, handler_input): slots = handler_input.request_envelope.request.intent.slots attr = handler_input.attributes_manager.persistent_attributes data.GLOBAL_ANSWER = attr['global_answer'] rightanswerstring = "The right answer is " + data.GLOBAL_ANSWER response_builder = handler_input.response_builder response_builder.set_card( ui.StandardCard( title = "Correct Answer", text= rightanswerstring, image = ui.Image( small_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download", large_image_url="https://upload.wikimedia.org/wikipedia/en/1/17/Stetson_Hatters_logo_%282018%29.png?download" ))) return response_builder.speak(rightanswerstring).ask(data.GLOBAL_ANSWER).response