2.3 KiB
2.3 KiB
Bot de descarga (agent para PC remota)
Agent Selenium que corre fuera de Docker, en la PC con Chrome e Imaging.
Vive en este monorepo bajo bots/ (no es un microservicio de services/).
- No expone puertos. Solo HTTP saliente al gateway IPSExtractor y PutObject a MinIO.
- La API de control está en
services/bot_descarga(Docker + PostgreSQL).
Requisitos en la PC
- Python 3.11+
- Google Chrome
- Acceso de red a Imaging (
BOT_IMAGING_URL) y al gateway (BOT_API_URL) - Token
BOT_API_TOKEN(mismo que el servicio en Docker)
Instalación
cd bots/bot_descarga
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/macOS
# source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Editar .env
Arranque con GUI
python run_gui.py
Configura URL API (ej. https://pys1.builker.xyz/bot-descarga o http://127.0.0.1:8189/bot-descarga), Worker ID y token. Pulsa Conectar agent. Queda idle hasta que el desktop asigne un job.
Autoarranque en Windows
En la misma GUI:
- Marca Iniciar con Windows (crea un
.baten la carpeta Startup del usuario). - Deja Conectar al abrir activo para que tras el login el agent quede online solo.
Tras reiniciar el PC e iniciar sesión, se abre la GUI y se registra el worker automáticamente.
Arranque solo agent (CLI)
python -m bot_descarga.worker.run \
--api-url http://127.0.0.1:8189/bot-descarga \
--worker-id PC-01 \
--token $BOT_API_TOKEN
Arquitectura
Desktop IPSExtractor → Gateway :8189 → services/bot_descarga (Docker)
↑
PC bot (esta carpeta) ────────┘ HTTP outbound
└─ PutObject PDFs → MinIO pys-cuentas-medicas/downloads/
Variables
Ver .env.example:
| Variable | Uso |
|---|---|
BOT_API_URL |
Base del API vía gateway (…/bot-descarga) |
BOT_API_TOKEN |
Bearer compartido con el servicio |
BOT_IMAGING_URL |
URL del sistema Imaging (requiere VPN/DNS) |
MINIO_* |
Bucket de PDFs; por defecto anónimo |
Debug local (sin API remota)
python main.py --excel datos.xlsx --carpeta descargas
Tests
cd bots/bot_descarga
python -m pytest tests/ -q