Ir al contenido

Mitos y Leyendas (fuente propia)

Mitos y Leyendas (slug mitos) es el primer TCG que no viene de TCGplayer: la fuente es el API oficial de Onyria (api.myl.cl, backend del sitio tor.myl.cl — no documentado pero estable). En producción desde el 2026-06-12: 136 ediciones / ~19.600 cartas, desde Espada Sagrada (2001) hasta hoy.

Códigotcgcards-api/src/sources/mitos/ (MitosSource implementa CatalogSource)
Bulk por ediciónGET api.myl.cl/cards/edition/{slug} → cartas + lookups (razas/rarezas/tipos)
Listado de edicionesNO hay endpoint: snapshot curado commiteado (editionsSnapshot.ts, regenerable con scripts/build-myl-editions-snapshot.ts) + detección en vivo de ediciones nuevas parseando el <select> de tor.myl.cl
Ediciones muertasEl select oficial tiene ~23 entradas cuyo bulk no existe → DEAD_EDITION_SLUGS (denylist en el snapshot). Sin ella, cada sync crearía sets fantasma vacíos
Rate limit≥1.1s entre requests, User-Agent identificable (tcgcards.cl catalog sync)
ActivaciónEl source solo se registra si MYL_SYNC=true (definido en el workflow del sync)

Entra al sync diario como cualquier TCG: ediciones nuevas se detectan solas y se publican atómicas (la edición completa o nada — ver abajo).

Las imágenes NO se hotlinkean a Onyria: se espejan una sola vez a R2 y se sirven por img.tcgcards.cl (CDN de Cloudflare, cache inmutable de 1 año).

  • Bucket tcgcards-img — uno solo para staging y prod (catálogo compartido, claves deterministas mitos/{editionId}/{edid}.webp + …-thumb.webp).
  • Pipeline: PNG oficial → sharp → WebP completo q82 (~85-95 KB) + miniatura 300px (~35 KB). Los PNG originales (~1.2-1.6 MB) nunca tocan el bucket.
  • Costo: ~3.2 GB de los 10 GB del free tier; egress gratis (razón de elegir R2).
  • Si el espejo falla en una carta, esa carta queda con hotlink temporal y el próximo resync la repara. Hay ~9 cartas cuyo PNG no existe en el API oficial (404 de origen: Troya 230-236 y 2 más) — muestran placeholder.

El layout de MyL rompe el matching estándar: el nombre va impreso vertical (el OCR no lo lee). La identificación usa:

  1. El número impreso: 1 - 236 (era clásica) o ONY 047-160 R (modernas) → edid. Las promos tipo CHI-10 no traen el edid (numeración propia) y caen al paso 3.
  2. Ranking por solape de tokens entre el OCR y el texto de habilidad (+ boost si el código de edición impreso coincide con el derivado del set).
  3. Fallback $text sobre name + attributes.raw.habilidad — el índice de texto de cards es cards_text_search (pesos name 10 / habilidad 3). ⚠️ Cambiar ese índice requiere scripts/migrate-cards-text-index.ts antes del deploy (Mongo permite un solo índice de texto; autoIndex no puede reemplazarlo).
  • 502 transitorios en ráfagas: en cargas largas fallan ediciones sueltas. Gracias a la publicación atómica no queda nada a medias; se reintentan con MYL_EDITIONS=slug1,slug2 npm run sync:initial -- --tcg=mitos.
  • Títulos a veces traen el prefijo de formato (“IMP - ”) — se limpia al generar el snapshot.
  • Fechas placeholder en ediciones antiguas (Espada Sagrada figura 1990) — inofensivo: las manda al fondo del orden cronológico.
  • El edition.id numérico de las URLs de imagen NO es el número de edición del sitio — siempre tomarlo del bulk.

Publicación atómica de sets (todos los TCG)

Sección titulada «Publicación atómica de sets (todos los TCG)»

Desde 2026-06-12 el SyncEngine publica los sets nuevos completos o no los publica: el fetch (red + espejado) ocurre antes de escribir, y un fallo a mitad no deja basura parcial — el próximo sync reintenta entero. Los re-syncs de sets existentes siguen en streaming. Motivación: que una edición recién salida nunca se vea a medias en el catálogo.

  • Filtros/facetas: tipo / raza / coste (declarados en tcgFilters.ts).
  • Las cartas de Mitos parten con idioma Español por defecto al publicar (TCG chileno).
  • Logo oficial en la grilla de la portada (/public/tcg-logos/mitos.webp).
  • Pendiente relacional: contactar a Onyria (cortesía/acuerdo de uso; el User-Agent ya los apunta a tcgcards.cl).