update readme

Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
This commit is contained in:
Omar Sánchez Pizarro
2025-10-10 00:18:33 +02:00
parent 0245b603b2
commit 7e5219ed72

View File

@@ -1,60 +1,66 @@
# Wallamonitor 📲 # Wallabicher 🛎️
**Automate your Wallapop searches and get notified on Telegram when new items are listed!** **Automatiza tus búsquedas en Wallapop y recibe notificaciones instantáneas en Telegram cuando aparezcan nuevos artículos!**
This bot periodically searches Wallapop for new items based on your specific parameters and sends real-time notifications to your designated Telegram channel. Wallabicher monitoriza Wallapop según tus parámetros personalizados, analiza novedades y te avisa en tiempo real a tu canal o chat de Telegram.
## Table of Contents ## Índice
- [Setup](#setup-) - [Instalación](#instalación-)
- [Configuration](#configuration-) - [Configuración](#configuración-)
- [Usage](#usage-) - [Uso](#uso-)
- [Nuevas Funcionalidades](#nuevas-funcionalidades-)
## Setup 🔧 ## Instalación 🔧
1. Install required packages: 1. Instala las dependencias necesarias:
```bash ```bash
pip3 install -r requirements.txt pip3 install -r requirements.txt
``` ```
2. Configure your Telegram details in `config.yaml`: 2. Configura tus credenciales de Telegram en el archivo `config.yaml`:
```yaml ```yaml
TELEGRAM_CHANNEL_ID: "@Your_Telegram_Channel_ID" telegram_channel: "@Tu_Canal_Telegram"
TELEGRAM_TOKEN: "Your Telegram Token" telegram_token: "Tu_Token_De_Telegram"
telegram_chat_id: "Tu_Chat_ID_Telegram"
``` ```
## Configuration 🛠️ ## Configuración 🛠️
Create an `args.json` file with your search parameters. This file tells Wallamonitor what items youre looking for, such as price range, condition, and other criteria. You can set multiple search configurations within this file. 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.
### Parameters: ### Parámetros:
| Parameter | Description | Example | Mandatory | | Parámetro | Descripción | Ejemplo | Obligatorio |
|----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|-------------------| |-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|-------------------|
| `search_query` | Main search term. Only items containing this phrase in their title will be found. | `"laptop"` | **Yes** | | `search_query` | Término de búsqueda principal; solo se mostrarán artículos con este texto en el título. | `"laptop"` | **** |
| `min_price` | Minimum item price. | `"100"` | **Yes** | | `min_price` | Precio mínimo del artículo. | `100` | **** |
| `max_price` | Maximum item price. | `"500"` | **Yes** | | `max_price` | Precio máximo del artículo. | `500` | **** |
| `latitude` | Latitude of your location for distance-based filtering. | `"40.4165"` | No | | `latitude` | Latitud para filtrar por distancia respecto a una ubicación. | `40.4165` | No |
| `longitude` | Longitude of your location for distance-based filtering. | `"-3.70256"` | No | | `longitude` | Longitud para filtrar por distancia respecto a una ubicación. | `-3.70256` | No |
| `max_distance` | Search range (in meters) from the specified latitude/longitude. Use `"0"` for no limit. | `"10000"` | No | | `max_distance` | Rango máximo en metros desde la latitud/longitud especificadas. Usa `0` para ilimitado. | `10000` | No |
| `condition` | Item condition to filter by. Options: `all`, `new`, `as_good_as_new`, `good`, `fair`, `has_given_it_all`. | `"good"` | No | | `condition` | Estado del artículo: `all`, `new`, `as_good_as_new`, `good`, `fair`, `has_given_it_all`. | `"good"` | No |
| `title_exclude` | List of words that, if present in the title, will exclude an item. | `["broken", "parts"]` | No | | `title_exclude` | Lista de palabras: si alguna está en el título, se descarta el anuncio. | `["estropeado", "partes"]` | No |
| `description_exclude` | List of words that, if present in the description, will exclude an item. | `["damaged"]` | No | | `description_exclude` | Lista de palabras: si alguna aparece en la descripción, se descarta el anuncio. | `["dañado"]` | No |
| `title_must_include` | List of required words in the title. If none of these words appear, the item will be excluded. | `["Intel", "i5"]` | No | | `title_must_include` | Palabras requeridas en el título: si no aparece alguna, se descarta. | `["Intel", "i5"]` | No |
| `description_must_include` | List of required words in the description. If none of these words appear, the item will be excluded. | `["working"]` | No | | `description_must_include` | Palabras requeridas en la descripción: si no aparece alguna, se descarta. | `["funciona"]` | No |
| `title_first_word_include` | Notify only if the first word of the title matches the specified word. | `"New"` | 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 |
Check out [args.json](./args.json) for an example Consulta el archivo de ejemplo [args.json](./args.json) para ver cómo estructurarlo.
## Usage 🚀 ## Nuevas Funcionalidades 🌟
1. Ensure your `args.json` file is filled out with the parameters youd like Wallamonitor to use for its searches. - Filtrado más avanzado: ahora puedes filtrar artículos por el primer término del título.
2. Run Wallamonitor: - 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.
## Uso 🚀
1. Asegúrate de completar tu archivo `workers.json` con los parámetros deseados para tus búsquedas.
2. Ejecuta Wallabicher:
```bash ```bash
python3 wallamonitor.py python3 wallamonitor.py
``` ```
The bot will monitor Wallapop periodically (default 15s) and send notifications to your specified Telegram channel whenever new items match your criteria. 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.
---
Feel free to reach out if you have any issues with Wallamonitor or have suggestions to improve it. Happy shopping! 🛒📲