Chismógrafo Logo

Chismógrafo 📓

✏️ el cuaderno donde apuntamos todos los chismes tech

🤫 ¿A quién le vamos a sacar el chisme?

Pega la URL de la tienda y el Chismógrafo se mete a espiar qué tech usan... ¡shhh, que no se enteren! 🕵️

🤓 Pa' los nerds: la API

¿Eres dev? Conecta el Chismógrafo a tus proyectos con estos endpoints REST que devuelven JSON bien detallado 💻

💻 La Consola (CLI Chismógrafo)

¿Te gusta la terminal? Vincula el CLI para sacarle el chisme a cualquier web directo desde tu consola bash:

1. Instalar y Vincular
# Vincular comando globalmente en tu equipo
npm link

# ¡Y listo! Ya puedes usar "chismografo"
2. Sacar chisme rápido
chismografo test-domain shopify.com
3. Filtrar un chisme específico
chismografo test-domain shopify.com --attr cms
4. Creadores interactivos
# Lanza asistentes interactivos en terminal
chismografo add-cms
chismografo add-app
chismografo add-infra

🌐 Endpoints de la API REST

POST /api/detect

Escanear sitio completo (Cuerpo JSON). Nos trae CMS, apps, pasarelas de pago, IP y mapas. 🌍

curl -X POST -H "Content-Type: application/json" -d '{"url": "shopify.com"}' http://localhost:3000/api/detect
GET /api/detect

Escanear sitio completo (Query param). Ideal para pruebas rápidas en navegador. 🚀

curl "http://localhost:3000/api/detect?url=shopify.com"
GET /api/infra

Escanear solo la infraestructura de red (CDNs, Proxies, Servidores Web). 🏗️

curl "http://localhost:3000/api/infra?url=shopify.com"
POST /api/pagespeed

Lanzar speed test de Google PageSpeed (Lighthouse móvil) y Core Web Vitals. ⚡

curl -X POST -H "Content-Type: application/json" -d '{"url": "shopify.com"}' http://localhost:3000/api/pagespeed
POST /api/report

Mandar reporte de auditoría completo en formato HTML por correo electrónico. 📬

curl -X POST -H "Content-Type: application/json" \
  -d '{"email": "amigo@tienda.com", "name": "Compa", "data": {"resolvedUrl": "shopify.com", "technology": "Shopify", "confidence": 1}}' \
  http://localhost:3000/api/report
GET /widget

Obtener calcomanía (sticker post-it amarillo) responsiva en HTML con el CMS detectado. 🏷️

curl "http://localhost:3000/widget?url=shopify.com"
GET /search-widget

Obtener la página HTML responsiva del buscador de chismes compacto. 🔎

curl "http://localhost:3000/search-widget"
Lo que te regresa (Ejemplo JSON /api/detect) ⬇️
{
  "url": "https://tienda-ejemplo.com",
  "resolvedUrl": "https://tienda-ejemplo.com/",
  "success": true,
  "detected": true,
  "technology": "Shopify",
  "confidence": 0.99,
  "matches": {
    "Shopify": {
      "detected": true,
      "confidence": 0.99,
      "matchedRules": [
        {
          "id": "shopify-meta-generator",
          "description": "Meta generator contains \"Shopify\"",
          "type": "meta",
          "context": "<meta name=\"generator\" content=\"Shopify\">",
          "weight": 1
        }
      ]
    }
  }
}

📖 Catálogo, Reglas y Plantillas

El Chismógrafo corre bajo firmas JSON dinámicas alojadas en techs/. Puedes crearlas usando plantillas e indexarlas:

1. Plantillas de Firmas

Contamos con formatos base en templates/ (cms.json, app.json, infra.json, gateway.json) que son autocompletados al usar los asistentes CLI como chismografo add-app.

2. Tipos de Reglas (detectionRules)

Las reglas evalúan cabeceras HTTP o el DOM HTML usando Regex. Admite los tipos: meta (etiquetas meta), script-src (coincidencia de scripts), script-content (JS inline), link-href (etiquetas de link), html-class (clases de nodo), html-attribute (atributos HTML específicos), y header (cabeceras HTTP).

Ejemplo de Firma JSON Personalizada
{
  "name": "Adyen",
  "category": "Payment Gateway",
  "web": "https://adyen.com",
  "logo": "adyen.com",
  "detectionRules": [
    {
      "type": "script-src",
      "pattern": "adyen\\.com|adyen\\.js",
      "description": "Script de integración de Adyen detectado"
    },
    {
      "type": "html-class",
      "pattern": "adyen-checkout",
      "description": "Clase de checkout de Adyen detectada"
    }
  ]
}