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 📲
**Automate your Wallapop searches and get notified on Telegram when new items are listed!**
This bot periodically searches Wallapop for new items based on your specific parameters and sends real-time notifications to your designated Telegram channel.
# 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.
## Table of Contents
- [Setup](#setup-)
- [Configuration](#configuration-)
- [Usage](#usage-)
## Índice
- [Instalación](#instalación-)
- [Configuración](#configuración-)
- [Uso](#uso-)
- [Nuevas Funcionalidades](#nuevas-funcionalidades-)
## Setup 🔧
## Instalación 🔧
1. Install required packages:
1. Instala las dependencias necesarias:
```bash
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
TELEGRAM_CHANNEL_ID: "@Your_Telegram_Channel_ID"
TELEGRAM_TOKEN: "Your Telegram Token"
telegram_channel: "@Tu_Canal_Telegram"
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:
| Parameter | Description | Example | Mandatory |
|----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|-------------------|
| `search_query` | Main search term. Only items containing this phrase in their title will be found. | `"laptop"` | **Yes** |
| `min_price` | Minimum item price. | `"100"` | **Yes** |
| `max_price` | Maximum item price. | `"500"` | **Yes** |
| `latitude` | Latitude of your location for distance-based filtering. | `"40.4165"` | No |
| `longitude` | Longitude of your location for distance-based filtering. | `"-3.70256"` | No |
| `max_distance` | Search range (in meters) from the specified latitude/longitude. Use `"0"` for no limit. | `"10000"` | No |
| `condition` | Item condition to filter by. Options: `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 |
| `description_exclude` | List of words that, if present in the description, will exclude an item. | `["damaged"]` | 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 |
| `description_must_include` | List of required words in the description. If none of these words appear, the item will be excluded. | `["working"]` | No |
| `title_first_word_include` | Notify only if the first word of the title matches the specified word. | `"New"` | No |
### 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"` | **** |
| `min_price` | Precio mínimo del artículo. | `100` | **** |
| `max_price` | Precio máximo del artículo. | `500` | **** |
| `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 |
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.
2. Run Wallamonitor:
- 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.
## Uso 🚀
1. Asegúrate de completar tu archivo `workers.json` con los parámetros deseados para tus búsquedas.
2. Ejecuta Wallabicher:
```bash
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! 🛒📲