#!/usr/bin/env bash set -euo pipefail API_URL="${API_URL:-http://localhost:8010/api/v1}" echo "=== Recarregando Ranking de Consultores CAPES ===" echo "" STATUS_CHECK=$(curl -s "${API_URL}/ranking/status") JA_RODANDO=$(echo "$STATUS_CHECK" | python3 -c "import sys,json; print(json.load(sys.stdin).get('running', False))" 2>/dev/null || echo "False") if [ "$JA_RODANDO" = "True" ]; then echo "[!] Job já em execução - acompanhando progresso existente..." else echo "[1/2] Disparando job (limpar_antes=true)..." RESP=$(curl -s -X POST "${API_URL}/ranking/processar" \ -H "Content-Type: application/json" \ -d '{"limpar_antes": true}') if echo "$RESP" | grep -q '"sucesso":true'; then echo " ✓ Job iniciado com sucesso" else echo " ✗ Erro ao iniciar job: $RESP" exit 1 fi fi echo "" echo "[2/2] Acompanhando progresso..." echo "" while true; do STATUS=$(curl -s "${API_URL}/ranking/status") RUNNING=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('running', False))" 2>/dev/null || echo "False") PROCESSADOS=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('processados', 0))" 2>/dev/null || echo "0") TOTAL=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('total', 0))" 2>/dev/null || echo "0") PROGRESS=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('progress', 0))" 2>/dev/null || echo "0") MSG=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('mensagem', ''))" 2>/dev/null || echo "") BARRA="" PROGRESS_INT=${PROGRESS%.*} PREENCHIDO=$((PROGRESS_INT / 5)) VAZIO=$((20 - PREENCHIDO)) for ((i=0; i/dev/null || echo "{}") if [ "$STATS" != "{}" ]; then echo "" echo "Estatísticas:" echo "$STATS" | python3 -c " import sys, json data = json.load(sys.stdin) print(f\" Total consultores: {data.get('total_consultores', 'N/A'):,}\") print(f\" Com pontuação: {data.get('com_pontuacao', 'N/A'):,}\") print(f\" Pontuação máxima: {data.get('pontuacao_maxima', 'N/A')}\") print(f\" Pontuação média: {data.get('pontuacao_media', 'N/A'):.2f}\") " 2>/dev/null || echo " (não foi possível obter estatísticas)" fi echo "" echo "Pronto!"