Files
whatsapp/scripts/verify_cache_fix.sh
T
2026-02-03 21:30:55 -05:00

191 lines
7.1 KiB
Bash
Executable File

#!/bin/bash
# ============================================
# 🔍 Script de Verificación de Cache
# ============================================
echo "═══════════════════════════════════════════"
echo "🔍 VERIFICANDO CONFIGURACIÓN ANTI-CACHÉ"
echo "═══════════════════════════════════════════"
echo ""
# Colores
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# URL a verificar (cambiar según tu instalación)
URL="http://localhost:8080/conversations.php"
# Si se pasa un argumento, usarlo como URL
if [ ! -z "$1" ]; then
URL="$1"
fi
echo "📍 URL a verificar: $URL"
echo ""
# Verificar headers HTTP
echo "🔍 Verificando headers HTTP..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
HEADERS=$(curl -I -s "$URL")
# Función para verificar header
check_header() {
local header_name="$1"
local expected_value="$2"
if echo "$HEADERS" | grep -qi "$header_name"; then
local actual_value=$(echo "$HEADERS" | grep -i "$header_name" | cut -d: -f2- | tr -d '\r\n' | sed 's/^[[:space:]]*//')
echo -e "${GREEN}$header_name:${NC} $actual_value"
if [ ! -z "$expected_value" ]; then
if echo "$actual_value" | grep -qi "$expected_value"; then
echo -e " ${GREEN}→ Contiene '$expected_value' ✓${NC}"
else
echo -e " ${YELLOW}⚠️ No contiene '$expected_value' esperado${NC}"
fi
fi
return 0
else
echo -e "${RED}$header_name: NO ENCONTRADO${NC}"
return 1
fi
}
echo ""
echo "1️⃣ Cache-Control"
check_header "Cache-Control" "no-store"
echo ""
echo "2️⃣ Pragma"
check_header "Pragma" "no-cache"
echo ""
echo "3️⃣ Expires"
check_header "Expires" "1970"
echo ""
echo "4️⃣ Content-Type"
check_header "Content-Type" "text/html"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Verificar contenido HTML
echo "🔍 Verificando meta tags en HTML..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
CONTENT=$(curl -s "$URL")
check_meta() {
local meta_name="$1"
local search_pattern="$2"
if echo "$CONTENT" | grep -qi "$search_pattern"; then
echo -e "${GREEN}✅ Meta tag '$meta_name' encontrado${NC}"
return 0
else
echo -e "${RED}❌ Meta tag '$meta_name' NO encontrado${NC}"
return 1
fi
}
echo ""
check_meta "Cache-Control" 'meta.*http-equiv.*Cache-Control.*no-cache'
check_meta "Pragma" 'meta.*http-equiv.*Pragma.*no-cache'
check_meta "Expires" 'meta.*http-equiv.*Expires.*0'
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Verificar cache busting en scripts
echo "🔍 Verificando cache busting en scripts..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
if echo "$CONTENT" | grep -qE 'chat-common\.js\?v=[0-9]+\.[0-9]+'; then
VERSION=$(echo "$CONTENT" | grep -oE 'chat-common\.js\?v=[0-9]+\.[0-9]+\.[0-9]+' | head -1)
echo -e "${GREEN}✅ Cache busting encontrado:${NC} $VERSION"
# Extraer solo el número de versión
VERSION_NUMBER=$(echo "$VERSION" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
echo -e " ${GREEN}→ Versión actual:${NC} $VERSION_NUMBER"
else
echo -e "${RED}❌ Cache busting NO encontrado o formato incorrecto${NC}"
fi
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Verificar versión en consola
if echo "$CONTENT" | grep -q "WHATSAPP BOT v1.2.1 - ANTI-CACHÉ ACTIVADO"; then
echo -e "${GREEN}✅ Versión 1.2.1 con anti-caché confirmada${NC}"
else
echo -e "${YELLOW}⚠️ Versión no detectada o diferente${NC}"
fi
echo ""
echo "═══════════════════════════════════════════"
echo "📊 RESUMEN"
echo "═══════════════════════════════════════════"
# Contar checks exitosos y fallidos
TOTAL_CHECKS=7
PASSED=0
FAILED=0
if echo "$HEADERS" | grep -qi "Cache-Control.*no-store"; then ((PASSED++)); else ((FAILED++)); fi
if echo "$HEADERS" | grep -qi "Pragma.*no-cache"; then ((PASSED++)); else ((FAILED++)); fi
if echo "$HEADERS" | grep -qi "Expires.*1970"; then ((PASSED++)); else ((FAILED++)); fi
if echo "$CONTENT" | grep -qi 'meta.*Cache-Control.*no-cache'; then ((PASSED++)); else ((FAILED++)); fi
if echo "$CONTENT" | grep -qi 'meta.*Pragma.*no-cache'; then ((PASSED++)); else ((FAILED++)); fi
if echo "$CONTENT" | grep -qi 'meta.*Expires.*0'; then ((PASSED++)); else ((FAILED++)); fi
if echo "$CONTENT" | grep -qE 'chat-common\.js\?v=[0-9]+'; then ((PASSED++)); else ((FAILED++)); fi
echo ""
echo -e "${GREEN}✅ Checks exitosos: $PASSED/$TOTAL_CHECKS${NC}"
echo -e "${RED}❌ Checks fallidos: $FAILED/$TOTAL_CHECKS${NC}"
echo ""
if [ $FAILED -eq 0 ]; then
echo -e "${GREEN}═══════════════════════════════════════════${NC}"
echo -e "${GREEN}🎉 ¡TODO ESTÁ CONFIGURADO CORRECTAMENTE!${NC}"
echo -e "${GREEN}═══════════════════════════════════════════${NC}"
echo ""
echo "✅ La página está configurada para NO cachearse"
echo "✅ Los scripts tienen cache busting activo"
echo "✅ Los usuarios verán siempre la versión más reciente"
echo ""
echo "💡 Si aún ves problemas, pide al usuario hacer:"
echo " - Ctrl+Shift+R (hard reload)"
echo " - Limpiar caché del navegador"
exit 0
else
echo -e "${YELLOW}═══════════════════════════════════════════${NC}"
echo -e "${YELLOW}⚠️ HAY PROBLEMAS DE CONFIGURACIÓN${NC}"
echo -e "${YELLOW}═══════════════════════════════════════════${NC}"
echo ""
echo "🔧 Posibles soluciones:"
echo ""
echo "1. Verifica que mod_headers esté habilitado en Apache:"
echo " sudo a2enmod headers"
echo " sudo systemctl restart apache2"
echo ""
echo "2. Verifica que .htaccess se esté leyendo:"
echo " - Asegúrate que AllowOverride All esté configurado"
echo ""
echo "3. Verifica que conversations.php tenga los headers PHP:"
echo " - Busca 'header(\"Cache-Control' al inicio del archivo"
echo ""
echo "4. Si usas Nginx en lugar de Apache:"
echo " - Los headers deben configurarse en el server block"
echo ""
exit 1
fi