Ejemplo n.º 1
0
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        playback_info = util.get_playback_info(handler_input)

        return (not playback_info.get("in_playback_session")
                and (is_intent_name("AMAZON.CancelIntent")(handler_input)
                     or is_intent_name("AMAZON.StopIntent")(handler_input)))
Ejemplo n.º 2
0
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        playback_info = util.get_playback_info(handler_input)

        return (playback_info.get("in_playback_session")
                and is_request_type("PlaybackController.PreviousCommandIssued")
                (handler_input))
Ejemplo n.º 3
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In StartOverHandler")
        playback_info = util.get_playback_info(handler_input)
        playback_info["offset_in_ms"] = 0

        return util.Controller.play(handler_input)
Ejemplo n.º 4
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In PlaybackFailedHandler")

        playback_info = util.get_playback_info(handler_input)
        playback_info["in_playback_session"] = False

        logger.info("Playback Failed: {}".format(
            handler_input.request_envelope.request.error))

        return handler_input.response_builder.response
Ejemplo n.º 5
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In PlaybackFinishedHandler")

        playback_info = util.get_playback_info(handler_input)

        playback_info["in_playback_session"] = False
        playback_info["has_previous_playback_session"] = False
        playback_info["next_stream_enqueued"] = False

        return handler_input.response_builder.response
Ejemplo n.º 6
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In PlaybackStoppedHandler")

        playback_info = util.get_playback_info(handler_input)

        playback_info["token"] = util.get_token(handler_input)
        playback_info["index"] = util.get_index(handler_input)
        playback_info["offset_in_ms"] = util.get_offset_in_ms(handler_input)

        return handler_input.response_builder.response
Ejemplo n.º 7
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In PlaybackStartedHandler")

        playback_info = util.get_playback_info(handler_input)

        playback_info["token"] = util.get_token(handler_input)
        playback_info["index"] = util.get_index(handler_input)
        playback_info["in_playback_session"] = True
        playback_info["has_previous_playback_session"] = True

        return handler_input.response_builder.response
Ejemplo n.º 8
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In NoHandler")
        playback_info = util.get_playback_info(handler_input)

        playback_info["index"] = 0
        playback_info["offset_in_ms"] = 0
        playback_info["playback_index_changed"] = True
        playback_info["has_previous_playback_session"] = False
        message = data.WELCOME_MSG
        reprompt = data.WELCOME_REPROMPT_MSG
        return handler_input.response_builder.speak(message).ask(
            reprompt).response
Ejemplo n.º 9
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In HelpIntentHandler")

        playback_info = util.get_playback_info(handler_input)

        if not playback_info.get('has_previous_playback_session'):
            message = data.HELP_MSG
        elif not playback_info.get('in_playback_session'):
            message = data.HELP_PLAYBACK_MSG
        else:
            message = data.HELP_DURING_PLAY_MSG

        return handler_input.response_builder.speak(message).ask(
            message).response
Ejemplo n.º 10
0
    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        logger.info("In LaunchRequestHandler")

        playback_info = util.get_playback_info(handler_input)

        if not playback_info.get('has_previous_playback_session'):
            message = data.WELCOME_MSG
            reprompt = data.WELCOME_REPROMPT_MSG
        else:
            playback_info['in_playback_session'] = False
            message = data.WELCOME_PLAYBACK_MSG.format(
                data.AUDIO_DATA[playback_info.get("play_order")[
                    playback_info.get("index")]].get("title"))
            reprompt = data.WELCOME_PLAYBACK_REPROMPT_MSG

        return handler_input.response_builder.speak(message).ask(
            reprompt).response
Ejemplo n.º 11
0
 def handle(self, handler_input):
     playback_info = util.get_playback_info(handler_input)
     return util.Controller.play(handler_input)
Ejemplo n.º 12
0
 def can_handle(self,handler_input):
     playback_info = util.get_playback_info(handler_input)
     return (playback_info.get("in_playback_session") and is_intent_name("AMAZON.ResumeIntent")(handler_input))
Ejemplo n.º 13
0
    def handle(self, handler_input):
        
        #initialzing parameters
        persistent_attr,session_attr,greg_date,misri_date=util.init_parameters(handler_input)
        
        #Set speed flag if said by user
        speed="normal"
        try:
            speed=handler_input.request_envelope.request.intent.slots["speed"].resolutions.resolutions_per_authority[0].values[0].value.id
        except:
            pass
        
        logger.info("speed {}".format(speed))
        audio_link=""
        title=""
        file_ext=".mp3"
        
        if(is_intent_name("quran")(handler_input)):
            
            if(handler_input.request_envelope.request.intent.slots["number"].value):
                slot_id=handler_input.request_envelope.request.intent.slots["number"].value
            else:
                slot_id=handler_input.request_envelope.request.intent.slots["ordinal"].value
                
            if speed=="FAST":
                audio_link=data.QURAN_LINKF.format(slot_id)
                title="Fastrack "+data.QURAN_TITLE.format(slot_id)
            else:
                audio_link=data.QURAN_LINK.format(slot_id)
                title=data.QURAN_TITLE.format(slot_id)
        else:
            
            #get id of the requested dua
            slot_id =handler_input.request_envelope.request.intent.slots["dua_name"].resolutions.resolutions_per_authority[0].values[0].value.id
            logger.info("slot id:{}".format(slot_id))
            
            #Search for dua id in our dictionary
            for dic in data.AUDIO_DATA:
                if(dic.get("id")==slot_id):
                    #setting normal url
                    audio_link=dic["url"]
                    title=dic["title"]

                    #getting speedy url if available
                    if(speed=="FAST"):
                        logger.info("playing speedy")
                        
                        try:
                            audio_link=dic["fast_url"]
                            title=" Fastrack "+dic["title"]
                        except:
                            pass
                    break

            #Finding misri day to assign dasska dua
            if(slot_id=="DASSKA"):
                misri_day=misri_date["day"]
                if(misri_day<11):
                    misri_day=1
                if(10<misri_day<21):
                    misri_day=2
                audio_link=audio_link+str(misri_day)+"+sherullah"+file_ext
            
            #finding day of week to assign joshan dua
            if(slot_id=="JOSHAN"):
                weekday=calendar.day_name[greg_date.weekday()]
                logger.info("Weekday {}".format(weekday))
                logger.info("audio link {}".format(audio_link))
                audio_link=audio_link+weekday.upper()+file_ext
                logger.info("audio link {}".format(audio_link))
                title=title+weekday
                
        logger.info("audio_link {} title {}".format(audio_link,title)) 
        
        playback_info = util.get_playback_info(handler_input)
        playback_info["link"]=audio_link
        playback_info["offset_in_ms"]=0
        msg="playing "+title
        handler_input.response_builder.speak(msg)
        return util.Controller.play(handler_input)
Ejemplo n.º 14
0
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        playback_info = util.get_playback_info(handler_input)

        return (playback_info.get("in_playback_session")
                and is_intent_name("AMAZON.NextIntent")(handler_input))