Files
..

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:

  1. Marca Iniciar con Windows (crea un .bat en la carpeta Startup del usuario).
  2. 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