Exemple #1
0
 def handle(self, handler_input):
     # type: (HandlerInput) -> Response
     logger.info("In PlaybackNearlyFinishedHandler")
     logger.info("Playback nearly finished")
     request = handler_input.request_envelope.request
     return util.play_later(url=util.audio_data(request)["url"],
                            card_data=util.audio_data(request)["card"],
                            response_builder=handler_input.response_builder)
 def handle(self, handler_input):
     # type: (HandlerInput) -> Response
     logger.info("In ResumeIntentHandler")
     request = handler_input.request_envelope.request
     _ = handler_input.attributes_manager.request_attributes["_"]
     speech = _(data.RESUME_MSG).format(
         util.audio_data(request)["card"]["title"])
     return util.play(url=util.audio_data(request)["url"],
                      offset=0,
                      text=speech,
                      card_data=util.audio_data(request)["card"],
                      response_builder=handler_input.response_builder)
Exemple #3
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In LaunchRequestOrPlayAudioHandler")

        _ = handler_input.attributes_manager.request_attributes["_"]
        request = handler_input.request_envelope.request

        return util.play(url=util.audio_data(request)["url"],
                         offset=0,
                         text=_(data.WELCOME_MSG).format(
                             util.audio_data(request)["card"]["name"]),
                         card_data=util.audio_data(request)["card"],
                         response_builder=handler_input.response_builder)
Exemple #4
0
 def handle(self, handler_input):
     # type: (HandlerInput) -> Response
     logger.info("In HelpIntentHandler")
     handler_input.response_builder.speak(
         data.HELP_MSG.format(
             util.audio_data(handler_input.request_envelope.request)["card"]
             ["title"])).set_should_end_session(False)
     return handler_input.response_builder.response
Exemple #5
0
 def handle(self, handler_input):
     # type: (HandlerInput) -> Response
     logger.info("In PlaybackFailedHandler")
     request = handler_input.request_envelope.request
     logger.info("Playback failed: {}".format(request.error))
     return util.play(url=util.audio_data(request)["url"],
                      offset=0,
                      text=None,
                      card_data=None,
                      response_builder=handler_input.response_builder)
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In PlayCommandHandler")
        _ = handler_input.attributes_manager.request_attributes["_"]
        request = handler_input.request_envelope.request

        return util.play(url=util.audio_data(request)["url"],
                         offset=0,
                         text=None,
                         card_data=None,
                         response_builder=handler_input.response_builder)
Exemple #7
0
    def handle(self, handler_input, exception):
        # type: (HandlerInput, Exception) -> Response
        logger.info("In CatchAllExceptionHandler")
        logger.error(exception, exc_info=True)
        _ = handler_input.attributes_manager.request_attributes["_"]
        handler_input.response_builder.speak(_(data.UNHANDLED_MSG)).ask(
            _(data.HELP_MSG).format(
                util.audio_data(
                    handler_input.request_envelope.request)["card"]["title"]))

        return handler_input.response_builder.response
Exemple #8
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In LaunchRequestOrPlayAudioHandler")

        request = handler_input.request_envelope.request

        # can add a default song here to play back
        speech = data.WELCOME_MSG.format(
            util.audio_data(request)["card"]["title"])
        return handler_input.response_builder.speak(
            speech).set_should_end_session(False).response
Exemple #9
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In PlayGeneratedMusicHandler")
        request = handler_input.request_envelope.request
        slots = request.intent.slots
        song_name = self.get_song_resolved_value(slots)
        tmp_mma_file_name = os.path.join(
            "song_data", self.__get_file_name_underscore(song_name))

        logger.info("Looking for file path: {}".format(tmp_mma_file_name))
        if os.path.exists(tmp_mma_file_name):

            request_id_holder = handler_input.request_envelope.request.request_id
            directive_header = Header(request_id=request_id_holder)
            speech = SpeakDirective(speech=random.choice(
                data.PROGRESSIVE_RESPONSE).format(song_name))
            directive_request = SendDirectiveRequest(header=directive_header,
                                                     directive=speech)

            directive_service_client = handler_input.service_client_factory.get_directive_service(
            )
            directive_service_client.enqueue(directive_request)

            user_id = handler_input.request_envelope.session.user.user_id

            tempo = slots.get("Tempo").value
            key = slots.get("Key").value

            backing_track_url = BackingTrackGenerator().get_backing_track(
                slots)

            self.save_context(backing_track_url, user_id, song_name, tempo,
                              key)

            generated_song_text = data.GENERATED_SONG.format(song_name)
            if key:
                generated_song_text += data.GENERATED_SONG_KEY.format(key)
            if tempo:
                generated_song_text += data.GENERATED_SONG_TEMPO.format(tempo)
            return util.play(url=backing_track_url,
                             offset=0,
                             text=generated_song_text,
                             card_data=util.audio_data(request)["card"],
                             response_builder=handler_input.response_builder)
        else:
            return handler_input.response_builder.speak(
                "Sorry, I couldn't find a lead sheet called {}".format(
                    song_name)).response
Exemple #10
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        request = handler_input.request_envelope.request
        user_id = handler_input.request_envelope.session.user.user_id
        song_data = self.get_context(user_id)

        generated_song_text = data.GENERATED_SONG.format(
            song_data["song_name"])
        if song_data["key"]:
            generated_song_text += data.GENERATED_SONG_KEY.format(
                song_data["key"])
        if song_data["tempo"]:
            generated_song_text += data.GENERATED_SONG_TEMPO.format(
                song_data["tempo"])
        return util.play(url=song_data["backing_track_url"],
                         offset=0,
                         text=generated_song_text,
                         card_data=util.audio_data(request)["card"],
                         response_builder=handler_input.response_builder)