Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 8
0
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
Ejemplo n.º 10
0
    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
Ejemplo n.º 11
0
 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
Ejemplo n.º 16
0
    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
Ejemplo n.º 18
0
 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
Ejemplo n.º 19
0
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
Ejemplo n.º 20
0
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")))
Ejemplo n.º 21
0
    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
Ejemplo n.º 22
0
    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
Ejemplo n.º 23
0
 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
Ejemplo n.º 24
0
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
Ejemplo n.º 25
0
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
Ejemplo n.º 26
0
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
Ejemplo n.º 27
0
 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)
Ejemplo n.º 28
0
    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
Ejemplo n.º 29
0
    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
Ejemplo n.º 30
0
 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