2026-08-07 — marvelousdb: cacheos invalidos de SerpAPI + mensaje “no data” (Loki)

Contexto: el usuario reporto personajes “sin imagenes” en la busqueda “king” (habia corrido cache-images.js con su key) y la pagina de Loki 1017299 (LEGO) mostrando el mensaje “no data… will get added to the Marvel API soon”.

Diagnostico

  • Las URLs de wikia de la busqueda “king” responden 200 (no estaban rotas).
  • El cache de SerpAPI del usuario tenia 12 archivos que son paginas HTML de error de Google (~400 bytes, thumbnails expirados) registrados como imagenes en data/img-cache.json → el navegador mostraba imagen rota. +2 entradas apuntaban a archivos inexistentes.
  • Loki 1017299: solo name + thumbnail; wiki y description vacios, 0 comics. El mensaje “no data” era correcto pero mencionaba la Marvel API (muerta).

Fixes

  1. data/cache-images.js:
    • isImage(buf, contentType): validacion por magic bytes (jpeg/png/gif/webp) → una descarga que no sea imagen real se marca como failed (no se registra).
    • pruneCacheIndex() al arranque: quita del indice (y borra el archivo) cualquier cacheo invalido/inexistente → reintentable en el proximo run.
    • Resultado: indice 132 → 118 entradas; faltantes = 17 (12 rotos + 5 que nunca se descargaron); actualizado data/missing-images.json.
  2. web.js + vista: hasData ahora incluye comics.total > 0; mensaje de la vista sin referencia a la Marvel API: “(Looks like we don’t have much information about this character yet.)“.

Pendiente (usuario)

  • Correr npm run cache:images de nuevo (su key ya esta en .env) → re-descarga los 17 faltantes con validacion. Verificar que los 12 rotos ahora caigan en el placeholder y al re-cachear carguen.