Importação da Scryfall
O pipeline que traz todas as cartas para o banco local.
Atualizado em 11 de junho de 2026
O importador vive em scripts/import-cards.ts e roda com npm run import:cards. Ele é a ponte entre o dump público da Scryfall e o nosso banco.
Fonte dos dados
A Scryfall publica vários conjuntos de dados em massa. Usamos o oracle_cards, que traz uma entrada por carta distinta, sem repetir cada reimpressão. São cerca de 176 MB.
Etapas do pipeline
1. Descobrir o arquivo
O script consulta o índice de bulk data da Scryfall e localiza a entrada oracle_cards, que aponta para o arquivo mais recente.
2. Baixar com cache
Se o arquivo local já existe com o tamanho esperado, ele é reaproveitado, evitando baixar de novo. Caso contrário, o download é transmitido direto para o disco.
3. Filtrar
São descartados layouts que não são cartas jogáveis (fichas, emblemas, séries de arte) e itens de memorabilia.
4. Mapear
Cada carta da Scryfall é convertida para o formato do nosso modelo Card. Cartas de duas faces têm o texto, o custo e a imagem extraídos da face da frente, com o texto das faces unido quando faz sentido.
5. Gravar
A tabela de cartas é limpa e os registros são inseridos em lotes de mil, para manter a memória sob controle e a inserção rápida. Ao final, o total é conferido.
Atualização
Como o dump muda diariamente, rodar o script de novo atualiza cartas novas e legalidades. Por reescrever a tabela inteira, o resultado é sempre um retrato fiel do dump mais recente.
Cuidado com crossovers
Muitas cartas clássicas têm sua impressão canônica em coleções de crossover (como as de super heróis). Onde a arte importa para a estética do site, como no mosaico da página inicial, essas coleções são filtradas para preservar o clima visual.
Sem preço
A plataforma não trabalha com preço. Não existe uma fonte confiável e autorizada de preços do mercado brasileiro: a LigaMagic não tem API pública, bloqueia coleta automatizada no seu robots.txt e protege seu banco por copyright. Converter valores em dólar não refletiria o mercado nacional. Por isso a decisão foi não exibir preço algum, e tratar custo apenas pelo custo de mana das cartas.