Exemplo n.º 1
0
    def add_busqueda_siete(self, update, context):
        # Recojo keywords
        lista_keywords_descripcion_reincluyentes = update.message.text
        context.user_data[
            "lista_keywords_descripcion_reincluyentes"] = lista_keywords_descripcion_reincluyentes.split(
                ", ")

        # Habilito comparación solo si el usuario ha metido su cuenta de WP en la BBDD.
        gestorBBDD = GestorBBDD()
        id_telegram = update.message.from_user.id
        usuario = gestorBBDD.recuperarUsuario(id_telegram)
        tiene_cuenta = (usuario.email != "None" and usuario.password != "None")

        if (tiene_cuenta):
            keyboard = ReplyKeyboardMarkup([["Si"], ["No"]],
                                           one_time_keyboard=True)
            texto = "La autocomparación hace que se estudien todos los anuncios nuevos, y solo se te avise de los anuncios que se consideren chollos. Si no la activas, se te avisarán de todos los anuncios. ¿Deseas activar la autocomparación?"
            update.message.reply_text(texto, reply_markup=keyboard)
            return self.STATUS8
        else:
            # Si no tiene cuenta, relleno los campos restantes con valores por defecto,
            # teniendo en cuenta que no se van a utilizar.
            context.user_data["multiplicador_minimo"] = 0.4
            context.user_data["multiplicador_maximo"] = 0.6
            context.user_data["porcentaje_considerado_chollo"] = 0.2

            context.user_data["comparar_automaticamente"] = False
            context.user_data["enviar_mensaje_auto"] = False
            texto = "Muy bien. Guardando búsqueda... "
            update.message.reply_text(texto)
            self.guardarBusqueda(id_telegram, update, context)
            return ConversationHandler.END
Exemplo n.º 2
0
    def iniciar(self, update, context):
        id_telegram = update.message.from_user.id
        print(f"[TELEGRAM] Usuario {id_telegram} lanza /iniciar. ")
        gestorBBDD = GestorBBDD()
        if(gestorBBDD.existeUsuario(id_telegram) and len(gestorBBDD.recuperarBusquedasUsuario(id_telegram)) > 0):
            if(self.diccionario_scrapers.get(id_telegram) == None):
                usuario = gestorBBDD.recuperarUsuario(id_telegram)
                busquedas_usuario = gestorBBDD.recuperarBusquedasUsuario(id_telegram)
                for busqueda in busquedas_usuario:
                    # Si está activada la autocomparación, borro artículos anteriores
                    # y relleno con los nuevos desde scraperwallapop, de forma que
                    # solo se van comparando los artículos nuevos subidos.
                    if(busqueda.comparar_automaticamente == True):
                        print(f"[TELEGRAM] Borro artículos previos de la búsqueda {busqueda.keywords} del usuario {id_telegram} porque tiene autocomparación. ")
                        gestorBBDD.borrarArticulosBusqueda(busqueda.id_busqueda)

                notificador = Notificador(self.TOKEN)
                tarea = TareaPeriodica(10, ScraperWallapop, usuario, notificador, ejecucion_en_background=False)
                update.message.reply_text("Iniciando scrapeo. ")
                self.diccionario_scrapers[id_telegram] = tarea
                tarea.start()
            else:
                update.message.reply_text("Ya se está scrapeando, utiliza /detener para detener el scrapeo.")

        else:
            update.message.reply_text("Debes tener una cuenta y al menos una búsqueda para iniciar el scrapeo. ")