Repository navigation
Búsqueda de cartas
English · Español
La pantalla Buscar (src/features/buscar/) consulta cualquier carta sin deck de por medio: un nombre o la sintaxis de Scryfall, filtros, resultados ordenados y una ficha. Añadir al deck es un botón al final, no el objetivo de la pantalla; por eso es una pantalla propia y no una variante del diálogo Añadir carta.
| Fichero | Responsabilidad |
|---|---|
src-tauri/src/commands/buscar.rs |
cartas_buscar, carta_ficha, carta_aclaraciones; monta la consulta (consulta, parametros) y la ficha (ficha_de), con tests. |
src-tauri/src/scryfall/client.rs |
Scryfall::buscar_pagina, Scryfall::aclaraciones. |
src/stores/busqueda-store.ts |
useBusqueda: filtros, resultados, página y carta abierta. Es un store porque cambiar de pestaña desmonta la pantalla y lo buscado tiene que seguir ahí al volver. |
src/features/buscar/buscar-screen.tsx |
La pantalla: campo con sugerencias, filtros (panel lateral en escritorio, HojaMenu en lo demás), barra de orden y resultados. |
src/features/buscar/filtros-panel.tsx |
Los controles de los filtros. |
src/features/buscar/ficha-carta.tsx |
El diálogo de la ficha (DialogoAdaptable). |
src/features/buscar/simbolos-mana.tsx |
Los símbolos de maná, pintados con CSS dentro del texto de reglas y los costes. |
src/features/buscar/consulta.ts |
La parte pura: filtros de fábrica, hayCriterio, cuantosFiltros, claveDeFiltros, partirSimbolos, con tests. |
Reutiliza RejillaCartas y useSugerencias de features/variants/ y traerCarta para añadir una carta.
La consulta se monta en Rust, como todo lo pesado. FiltrosCartas lleva lo que ha pedido la pantalla:
flowchart LR
P[FiltrosCartas] --> C[consulta: el parámetro q]
P --> X[parametros: order, dir, unique, include_multilingual]
C --> S[/cards/search + page/]
X --> S
S --> R[PaginaCartas: cartas, total, hayMas]
-
textova tal cual (puede ser sintaxis de Scryfall); conexacto, elegido en las sugerencias, pasa a ser!"nombre". - Todos los demás valores pasan por
solo_alfanumerico, para que un filtro no pueda colar otra consulta. - Colores:
c>=(los incluye),c=(exactamente esos) oid<=(identidad dentro de ellos, para un comandante). Incolora con colores no tiene sentido, así que mandan los colores. -
include_multilingual=truees lo que hace que «rayo» encuentre el nombre impreso en español; sin filtro de idioma, los resultados siguen saliendo en inglés. Solo se quita con «todas las impresiones» y sin idioma, que listaría todas las impresiones en todos los idiomas.
Una consulta vacía devuelve una página vacía sin llamar a Scryfall. Una consulta sin coincidencias (un 404 de Scryfall) también es una página vacía, no un error.
-
Los filtros buscan solos, el texto no.
claveDeFiltrosson los filtros sin el texto: cuando cambia, se busca a los 350 ms (los filtros se suelen cambiar varios seguidos). El texto espera a Enter, al botón o a una sugerencia, para no hacer una petición por cada tecla. Volver a la pantalla no busca otra vez. -
Páginas. Scryfall da hasta 175 cartas por página. Un centinela al final de la rejilla (
useVisible, con el viewport delScrollAreacomo raíz) pide la siguiente; si falla, deja de pedir y enseña «Reintentar». Las páginas no se recuerdan enbusquedas: el store ya las guarda. -
Respuestas viejas.
busqueda-store.tsnumera cada petición y tira la respuesta de todas menos la última. -
La ficha.
ficha_deda una entrada por cara: las partidas y las de aventura comparten una imagen y llevan el texto de cada cara; las de doble cara tienen una imagen por cara, y solo ellas llevan el botón de «la otra cara». El texto impreso manda sobre el Oracle, así que una carta en español se lee en español. -
Precios. Scryfall no da precio a las impresiones que no están en inglés, así que
carta_fichapide la misma impresión en inglés; si falla, la ficha se abre igual, sin precio. Es la misma regla que en Estadísticas. -
Impresiones.
card_printscon el idioma de la carta abierta; las filas de Cockatrice se quitan porque no tienen ficha. Si falla, la ficha sigue valiendo. - Aclaraciones. Son de la carta, no de la impresión, así que se piden una vez por nombre de carta, no otra vez al cambiar de impresión. Scryfall solo las tiene en inglés, y el título lo dice.
-
Añadir.
traerCartamásinsertaral final del deck abierto, con un aviso: el deck no está en pantalla.
- Un filtro nuevo: un campo en
FiltrosCartasy su trozo enconsulta(con test), luego el control enfiltros-panel.tsxy la cuenta encuantosFiltros. - Un dato nuevo en la ficha: un campo en
FichaCarta/CaraFicha(puede queScryCardya lo lea) y su línea enficha-carta.tsx.
Use and build · Uso y desarrollo
- User-Guide · Guía de usuario
- Development-Setup · Preparación del entorno de desarrollo
- Testing-and-CI · Tests y CI
- Releases-and-Auto-Updates · Versiones y actualizaciones automáticas
- Conventions · Convenciones
Architecture · Arquitectura
- Architecture · Arquitectura
- IPC-and-Error-Handling · IPC y manejo de errores
- Rust-App-Layer · Capa de aplicación Rust
Data · Datos
- Deck-Model · Modelo del mazo
- Storage-and-Blobs · Almacenamiento y blobs
- Deck-Package-Format · Formato del paquete de mazo
- Deck-Library · Biblioteca de mazos
Getting cards · Conseguir cartas
- Decklist-Parsing · Parseo de la lista del mazo
- Scryfall-Integration · Integración con Scryfall
- External-Sources · Fuentes externas
- Card-Identification-and-OCR · Identificación de cartas y OCR
Layout, images, PDF · Maquetación, imagen y PDF
- Layout-Engine · Motor de maquetación
- Imaging-and-PDF · Imagen y PDF
- Export · Exportación
- Live-Preview · Vista previa en vivo
- Statistics · Estadísticas
Card designer · Diseñador de cartas
- Designer-Overview · Visión general del diseñador
- Designer-Engine · Motor del diseñador
- Designer-Composition · Composición del diseñador
- Frame-Packs · Packs de marcos
- Designer-App-Layer · Capa de aplicación del diseñador
- Designer-UI · Interfaz del diseñador
- Card-Editor-Dialog · Diálogo Editar carta
Game table · Mesa de juego
Mobile · Móvil
Frontend · Frontend
- Frontend-Architecture · Arquitectura del frontend
- State-Stores · Stores de estado
- Internationalization · Internacionalización
- Themes-and-Skins · Temas y skins
- Icons · Iconos
- Settings-and-Shell · Ajustes y shell
- Tutorials · Tutoriales
- Decklist-Panel · Panel de la lista del mazo
- Add-Card-and-Variants · Añadir carta y variantes
- Card-Search · Búsqueda de cartas
- Set-Browser · Explorador de sets
Reference · Referencia