#!/bin/bash # Demostración de uso de perfiles en paralelo echo "==========================================" echo "🎭 Demo: Perfiles en Paralelo" echo "==========================================" echo "" # Verificar que los binarios existen if [ ! -f "./buscar" ] || [ ! -f "./screenshot" ]; then echo "❌ Error: Binarios no encontrados" echo "Ejecuta: go build -o buscar cmd/buscar.go" exit 1 fi # Crear perfil base echo "📝 Paso 1: Crear perfil base" echo "---" PROFILES_DIR="$HOME/.navegator/profiles" mkdir -p "$PROFILES_DIR/demo-base" echo "✅ Perfil base creado: demo-base" echo "" # Clonar perfiles echo "📋 Paso 2: Clonar perfiles para uso paralelo" echo "---" for i in {1..3}; do if [ -d "$PROFILES_DIR/demo-worker-$i" ]; then rm -rf "$PROFILES_DIR/demo-worker-$i" fi cp -r "$PROFILES_DIR/demo-base" "$PROFILES_DIR/demo-worker-$i" # Limpiar locks rm -f "$PROFILES_DIR/demo-worker-$i/SingletonLock" rm -f "$PROFILES_DIR/demo-worker-$i/SingletonSocket" rm -f "$PROFILES_DIR/demo-worker-$i/SingletonCookie" echo "✅ Clonado: demo-worker-$i" done echo "" # Ejecutar en paralelo echo "🚀 Paso 3: Ejecutar búsquedas en paralelo" echo "---" echo "Iniciando 3 búsquedas simultáneas..." echo "" ./bin/buscar -q "golang tutorial" -n 3 -profile demo-worker-1 -output demo-result-1.json & PID1=$! echo "Worker 1 (PID $PID1): Buscando 'golang tutorial'" ./bin/buscar -q "python basics" -n 3 -profile demo-worker-2 -output demo-result-2.json & PID2=$! echo "Worker 2 (PID $PID2): Buscando 'python basics'" ./bin/buscar -q "javascript async" -n 3 -profile demo-worker-3 -output demo-result-3.json & PID3=$! echo "Worker 3 (PID $PID3): Buscando 'javascript async'" echo "" echo "⏳ Esperando que terminen las búsquedas..." wait echo "" echo "==========================================" echo "✅ Demo completada" echo "==========================================" echo "" # Mostrar resultados echo "📊 Resultados generados:" ls -lh demo-result-*.json 2>/dev/null | awk '{print " "$9" ("$5")"}' echo "" echo "📂 Perfiles usados simultáneamente:" for i in {1..3}; do if [ -d "$PROFILES_DIR/demo-worker-$i" ]; then size=$(du -sh "$PROFILES_DIR/demo-worker-$i" | cut -f1) echo " demo-worker-$i ($size)" fi done echo "" echo "💡 Conclusión:" echo " - 3 búsquedas ejecutadas EN PARALELO" echo " - Cada una con su propio perfil (cookies aisladas)" echo " - Sin conflictos ni errores de lock" echo " - Resultados guardados en JSON separados" echo "" echo "🧹 Limpiar archivos de demo? (y/N)" read -r respuesta if [ "$respuesta" = "y" ] || [ "$respuesta" = "Y" ]; then rm -f demo-result-*.json rm -rf "$PROFILES_DIR/demo-worker-"* rm -rf "$PROFILES_DIR/demo-base" echo "✅ Demo limpiada" else echo "Archivos conservados en:" echo " - Resultados: demo-result-*.json" echo " - Perfiles: $PROFILES_DIR/demo-worker-*" fi echo "" echo "📖 Más info: cat PERFILES_AVANZADO.md"