예제 #1
0
    def process_postback(self, postback_payload):
        """ 
        Understand payload-type(switch), process something and create response
        """
        if postback_payload == "GET_STARTED_BOT":
            response_data = "Soy un bot de busqueda musical por letras/lyrics"
            self.record_message_and_payload(response_data, postback_payload)
            return (response_data, ResponseType.default)

        if postback_payload == "LYRICS_PAYLOAD":
            response_data = "escribe la letra que quieres buscar :)"
            self.record_message_and_payload(response_data,
                                            postback_payload,
                                            with_follow_up=True)
            return (response_data, ResponseType.text)

        if "FAVORITE_" in postback_payload:
            track_id = postback_payload.split("_")[1]
            (track, was_saved) = self.search_track_by_id(track_id)

            if was_saved:
                response_data = "se guardó la canción {} en tu lista de favoritos".format(
                    track.name)
            else:
                response_data = "la canción {} ya estaba en tu lista de favoritos".format(
                    track.name)
            self.record_message_and_payload(response_data, postback_payload)

            return (response_data, ResponseType.text)

        if "REMOVE_" in postback_payload:
            track_id = postback_payload.split("_")[1]
            #removed = self.remove_track_by_id(track_id)
            removed = True

            if removed:
                response_data = "Se Borró la canción seleccionada"
            else:
                response_data = "La canción no existe en tu lista de canciones"
            self.record_message_and_payload(response_data, postback_payload)

            return (response_data, ResponseType.text)

        if postback_payload == "FAVORITES_PAYLOAD":
            favorite_songs = Song.favorites_by_user(self.sender_id)

            response_message = "tienes {} cancion(es) en tu lista de favoritos, estas son:".format(
                len(favorite_songs))
            self.record_message_and_payload(response_message, postback_payload)
            response_data = {
                "text": response_message,
                "data": favorite_songs,
                "buttons": {
                    "title": "Eliminar",
                    "payload": "REMOVE_{}_PAYLOAD",
                }
            }
            return (response_data, ResponseType.results)

        if postback_payload == "COUNT_USERS":
            users_quantity = User.users_quantity()
            response_data = "Aproximadamente {} usuario(s) utilizan el bot".format(
                users_quantity)
            self.record_message_and_payload(response_data, postback_payload)
            return (response_data, ResponseType.text)

        if postback_payload == "CHAT_DAYS":
            chats_daily_quantity = Conversation.quantity_by_day()
            response_data = "Aproximadamente hay {} chat(s) en el día a día".format(
                chats_daily_quantity)
            self.record_message_and_payload(response_data, postback_payload)
            return (response_data, ResponseType.text)

        if postback_payload == "TOP_FAVORITES":
            top_songs = Song.get_top_songs()

            response_message = "estos son las top 5 canciones:"
            self.record_message_and_payload(response_message, postback_payload)
            response_data = {
                "text": response_message,
                "data": top_songs,
                "buttons": {
                    "title": "Favorita",
                    "payload": "FAVORITE_{}_PAYLOAD",
                }
            }
            return (response_data, ResponseType.results)