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)