2026-08-07 — marvelousdb: dataset Public Domain Super Heroes (PDSH)

Contexto: el usuario quiere enfocarse en superheroes de dominio publico. El importador de Marvel/Orchestrate murio; se evaluaron fuentes alternativas y se eligio el wiki PDSH (pdsh.fandom.com).

Fuentes evaluadas

  • PDSH (pdsh.fandom.com) — ELEGIDA: 10,076 paginas, 9,417 personajes de dominio publico via API MediaWiki (action=query). Sin copyright.
  • mcuapi (github.com/AugustoMarcelo/mcuapi) — descartada: peliculas del MCU, propiedad de Marvel/Disney, no dominio publico.
  • Download-ComicBooks-API (github.com/yashkathe/…) — descartada: comics con copyright.

Tecnica del importador (data/import-pdsh.js)

  • API MediaWiki de Fandom con User-Agent de navegador (bloquea urllib/python).
  • list=allpages (nonredirects, aplimit 500) para titulos; luego batches de 50 con prop=revisions|pageimages|info + rvprop=content&rvslots=main + formatversion=2 (ojo: con formatversion=2 el contenido esta en slots.main.content, no ['*']).
  • pageimages da el thumbnail directo en static.wikia.nocookie.net.
  • Filtro: solo paginas con {{Infobox}} con >= 2 filas → 94% de paginas.
  • Parseo del infobox generico: filas “Row N title/info” → pares, mapeados a real_name/debut/publisher/created_by/groups/base_of_operations/occupation; el resto queda en wiki.infobox (crudo).
  • Bio: wikitext sin infobox, limpiado (links y→y, templates, refs, cabeceras ). Description = primer parrafo.
  • Thumbnail guardado como STRING URL (formato distinto al de Marvel {path,extension}).

Cambios de API para soportar ambos datasets

  • thumbUrl() en api.js normaliza thumbnail (string | {path,extension} | null→placeholder local /img/no-image.svg, SVG generado en public/img).
  • Vistas: {{thumbnail.path}}.{{thumbnail.extension}} → {{thumbnail}}.
  • loadComics() tolerante a dataset sin carpeta comics/ (PDSH no tiene).
  • .env: DATA_DIR=data/pdsh (default ahora PDSH; Marvel en data/).
  • Vista character: campos publisher, created_by, base_of_operations.
  • Select de realities: opcion “Public Domain”.
  • Tests: suite condicional PDSH (child process con DATA_DIR=data/pdsh en puerto aleatorio; 14 tests totales verdes).

Datos

  • Importacion completa: 9,417 personajes, 47 MB, ~9 min.
  • Resultados: busqueda por nombre (28 “Ace”, 100 “Captain”), filtro gender (1,754 femeninos via heuristica de pronombres), universo “Public Domain”.

Pendientes

  • Reiniciar npm start para ver PDSH (el .env ya apunta a data/pdsh).
  • mcuapi podria entrar como dataset “peliculas” si el esquema gana esa entidad.