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
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. ")