Files
IPSExtractor/bots/bot_descarga
..

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.

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