Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
Wallabicher 🛎️
Automatiza tus búsquedas en Wallapop y recibe notificaciones instantáneas en Telegram cuando aparezcan nuevos artículos! Wallabicher monitoriza Wallapop según tus parámetros personalizados, analiza novedades y te avisa en tiempo real a tu canal o chat de Telegram.
Índice
Instalación 🔧
-
Instala las dependencias necesarias:
pip3 install -r requirements.txt -
Configura tus credenciales de Telegram en el archivo
config.yaml:telegram_channel: "@Tu_Canal_Telegram" telegram_token: "Tu_Token_De_Telegram" telegram_chat_id: "Tu_Chat_ID_Telegram"
Configuración 🛠️
Crea un archivo args.json con los parámetros de búsqueda. Wallabicher permite definir múltiples búsquedas y personalizar criterios para filtrar exactamente lo que quieres recibir.
Parámetros:
| Parámetro | Descripción | Ejemplo | Obligatorio |
|---|---|---|---|
search_query |
Término de búsqueda principal; solo se mostrarán artículos con este texto en el título. | "laptop" |
Sí |
min_price |
Precio mínimo del artículo. | 100 |
Sí |
max_price |
Precio máximo del artículo. | 500 |
Sí |
latitude |
Latitud para filtrar por distancia respecto a una ubicación. | 40.4165 |
No |
longitude |
Longitud para filtrar por distancia respecto a una ubicación. | -3.70256 |
No |
max_distance |
Rango máximo en metros desde la latitud/longitud especificadas. Usa 0 para ilimitado. |
10000 |
No |
condition |
Estado del artículo: all, new, as_good_as_new, good, fair, has_given_it_all. |
"good" |
No |
title_exclude |
Lista de palabras: si alguna está en el título, se descarta el anuncio. | ["estropeado", "partes"] |
No |
description_exclude |
Lista de palabras: si alguna aparece en la descripción, se descarta el anuncio. | ["dañado"] |
No |
title_must_include |
Palabras requeridas en el título: si no aparece alguna, se descarta. | ["Intel", "i5"] |
No |
description_must_include |
Palabras requeridas en la descripción: si no aparece alguna, se descarta. | ["funciona"] |
No |
title_first_word_exclude |
Lista de palabras: si el primer término del título coincide, se descarta. (Nuevo) | ["Reacondicionado"] |
No |
check_every |
Cada cuántos segundos se actualiza la búsqueda (por defecto, 30s si no se especifica). | 15 |
No |
thread_id |
ID del tema/hilo de Telegram donde se enviarán los mensajes. Si no se especifica, se envía al tema general. (Nuevo) | 2 |
No |
Consulta el archivo de ejemplo args.json para ver cómo estructurarlo.
Nuevas Funcionalidades 🌟
- Filtrado más avanzado: ahora puedes filtrar artículos por el primer término del título.
- Multiples criterios combinados para ignorar anuncios indeseados o exigir palabras clave.
- Recibes una galería de imágenes en cada notificación, no solo una imagen.
- El código es más modular y fácil de personalizar para diferentes búsquedas simultáneas.
Sistema de Favoritos ⭐
- Botones interactivos: Cada artículo incluye un botón "⭐ Añadir a favoritos" para guardar rápidamente los que te interesan.
- Comando /favs: Escribe
/favsen tu chat de Telegram para ver todos tus artículos favoritos guardados. - Gestión completa: Puedes añadir y eliminar artículos de favoritos con un solo clic.
- Persistencia: Todos tus favoritos se guardan en
favorites.jsony persisten entre reinicios. - Enlaces directos: Cada favorito incluye un enlace directo al mensaje original en Telegram.
Soporte para Temas de Telegram 📌
Wallabicher ahora soporta grupos de Telegram con temas (topics/hilos). Puedes organizar tus notificaciones enviando cada búsqueda a su tema correspondiente:
- Configuración por worker: Añade el parámetro
thread_ida cada búsqueda enworkers.jsoncon el ID del tema donde quieres recibir las notificaciones. - Tema general: Si un worker no tiene especificado el
thread_id, los mensajes se enviarán al tema general del grupo. - Cómo obtener el thread_id:
- En tu grupo de Telegram, haz clic en el tema donde quieres enviar notificaciones
- Copia el enlace del tema (tiene el formato:
https://t.me/c/XXXXX/THREAD_ID) - El número después de la última barra es el
thread_id
Ejemplo en workers.json:
{
"name": "Nintendo 64",
"search_query": "nintendo 64",
"thread_id": 6
}
Uso 🚀
-
Asegúrate de completar tu archivo
workers.jsoncon los parámetros deseados para tus búsquedas. -
Ejecuta Wallabicher:
python3 wallamonitor.py
El bot revisará Wallapop periódicamente (configurable, por defecto cada 30s) y enviará notificaciones a tu canal o chat de Telegram siempre que aparezcan artículos nuevos que encajen con tus filtros.