Folhas de alvo pontuadas fornecidas aparecem ao lado das classificações da divisão, contagens X, percentuais e posições de acerto registradas no cartão em destaque. As classificações compartilham a altura da tela: alguns cartões ficam grandes, muitas divisões paginam em grupos que seguem o cartão em destaque, e cada divisão mantém suas linhas superiores. Folhas com mais de 25 touros desenham todos os touros em uma grade, e no Primetime paginam por blocos de até 25 touros que mantêm cada acerto registrado, pontuação e total da linha. Durante o Primetime, o cabeçalho e as classificações animam, pontuações normais aparecem em ciano, chaves marcam cartões novos, e confetes contidos celebram folhas perfeitas completas. Movimento reduzido apresenta uma imagem composta.
Cartão ao vivo
Categoria: Esportes. Tags: Placar, Classificações e rankings, Esportes individuais.
Layouts
Este cartão em tela cheia preenche toda a tela em paisagem ou retrato e não é colocado como canto, chip ou faixa.
Layouts: cheio. Formas: paisagem, retrato.
Layouts, temas e publicação de cartões. Veja os cartões.
Dados e privacidade
Este cartão usa suas propriedades configuradas e dados ao vivo do cartão.
Propriedades
Para tema, fundo, destaque e posição, veja Propriedades comuns.
Defina as propriedades estáticas nos params do cartão ao criá-lo. O documento de dados dele contém apenas propriedades dinâmicas. Linhas aninhadas descrevem o conteúdo da propriedade pai.
Propriedades estáticas
| Nome | Tipo | Padrão | Valores e limites | Descrição |
|---|---|---|---|---|
title | string | "Match standings" | maxLength: 60 | O rótulo acima do nome da partida; o próprio título quando os dados não nomeiam uma partida. |
subtitle | string | "" | maxLength: 120 | Uma linha sob o título, antes da data da partida e da contagem de atiradores. |
target | object | additionalProperties: false | A folha alvo em que cada cartão é lançado. | |
target.bulls | integer | 25 | mínimo: 1; máximo: 100 | Registre touros em uma folha. |
target.rows | integer | 5 | mínimo: 1; máximo: 20 | Linhas onde os touros ficam sentados, lidas da esquerda para a direita, de cima para baixo. |
target.rings | array | [10,9,8,7,6,5] | minItems: 1; maxItems: 12 | Valores dos anéis de pontuação do anel interno para o externo. O primeiro é a maior pontuação do centro. |
target.xRing | boolean | true | Um anel X dentro do anel interno; X conta para desempatar. | |
target.radii | array | [] | maxItems: 12 | Raios dos anéis de dentro para fora, um por valor do anel, em qualquer unidade (o cartão escala o anel externo para 1). Espaços vazios distribuem os anéis uniformemente. |
target.xRadius | number | 0 | mínimo: 0 | O raio do anel X na unidade de raios, ou como fração do anel externo quando raios está vazio. 0 é metade do anel interno. |
target.black | integer | 4 | mínimo: 0; máximo: 12 | Quantos anéis, do anel interno para fora, o alvo preto cobre. |
target.shotSize | number | 0.22 | mínimo: 0; máximo: 1 | O diâmetro de um furo de tiro como uma fração do raio do anel externo de pontuação. |
showPercent | boolean | true | Mostrar a pontuação de cada cartão como uma porcentagem do máximo da folha. | |
ranking | string | "best" | "best", "every" | best classifica cada atirador uma vez por divisão, em sua melhor ficha; every classifica todas as fichas. |
rotateSeconds | integer | 12 | mínimo: 0; máximo: 600 | Segundos que cada cartão classificado é exibido na rotação do relógio de parede. 0 mantém o cartão mais recente. |
freshMinutes | integer | 3 | mínimo: 0; máximo: 60 | Um cartão enviado recentemente é novo: destacado antes da rotação e marcado como Acabou de chegar. 0 desativa. |
backgroundColor | string, nulo | null | padrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Substitui o fundo e a placa do cartão por uma cor plana ordenada por CSS. #RRGGBBAA fornece opacidade. background none tem precedência. |
textColor | string, nulo | null | padrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Substitui as cores do texto principal e secundário. As cores de destaque e status semântico mantêm seus papéis. |
Propriedades dinâmicas
| Nome | Tipo | Padrão | Valores e limites | Descrição |
|---|---|---|---|---|
match | object | additionalProperties: false | A partida. | |
match.name | string | "" | maxLength: 60 | |
match.date | string | "" | maxLength: 10 | YYYY-MM-DD. |
divisions | array | [] | maxItems: 8 | Divisões na ordem de exibição. Uma divisão que uma entrada nomeia, mas que esta lista não tem, é adicionada depois delas. |
divisions[].id | string | minLength: 1; maxLength: 40; Obrigatório | ||
divisions[].name | string | maxLength: 40; Obrigatório | ||
entries | array | [] | maxItems: 200 | Cartões pontuados, um por foto da folha. As pontuações são definitivas: o cartão totaliza e classifica, e marca cada acerto onde caiu, mas nunca recalcula a pontuação a partir dos acertos. |
entries[].id | string | minLength: 1; maxLength: 60; Obrigatório | Estável e único: o agente reescreve o mesmo id quando corrige um cartão. | |
entries[].shooter | string | minLength: 1; maxLength: 40; Obrigatório | O nome de exibição do atirador; cartões com o mesmo nome (ignorando maiúsculas) são um atirador. | |
entries[].division | string | maxLength: 40 | Um divisions[].id. | |
entries[].label | string | maxLength: 80 | O que este cartão é, por exemplo 25 m · Folha 2. | |
entries[].submittedAt | string | maxLength: 40 | Instante ISO 8601 em que o cartão foi pontuado. Determina a atualidade e desempata (quem for mais antigo vence). | |
entries[].bulls | array | maxItems: 100; Obrigatório | Um por registro, touro na ordem da planilha, da esquerda para a direita por linha. Touro acima de target.bulls é ignorado; os ausentes são considerados não pontuados. | |
entries[].bulls[].score | número, nulo | mínimo: 0; máximo: 100; Obrigatório | A pontuação do touro; null significa que ainda não foi pontuado. | |
entries[].bulls[].x | boolean | O tiro está no anel X (sua pontuação é o valor do anel interno). | ||
entries[].bulls[].hits | array | maxItems: 10 | Centros dos disparos em unidades do raio do anel externo do alvo: 0,0 é o centro, +x à direita, +y para cima. | |
entries[].bulls[].hits[].dx | number | mínimo: -2; máximo: 2; Obrigatório | ||
entries[].bulls[].hits[].dy | number | mínimo: -2; máximo: 2; Obrigatório | ||
entries[].photo | string | maxLength: 512 | Uma URL de mídia resolvida pelo host da foto do cartão. | |
featured | string | "" | maxLength: 60 | Um ID de entrada para manter em destaque. Vazio exibe um cartão novo, caso contrário gira. |
Exemplo de tela
Salve as propriedades estáticas como params.json e crie o cartão. O resultado traz o id crd_ dele.
{
"theme": "neomustard"
}
screenrig card create --type shooting-match --major 1 --file params.json
Adicione este item aos primitives de uma página da playlist, com esse id no lugar do id do exemplo. Publique a playlist e atribua uma tela.
{
"id": "shooting-match",
"primitive": "card",
"card": "crd_01EXAMPLECARD000000000",
"layout": "full",
"content_fit": "fill"
}
Escrever dados ao vivo
Escreva o documento no cartão depois de criá-lo e depois substitua-o para atualizar a tela sem republicar. O cartão verifica cada gravação contra suas propriedades dinâmicas e recusa um documento que ele rejeita. Use o mesmo projeto da playlist.
Salve o documento como card-data.json. O CLI lê o documento em si, sem invólucro:
{
"match": {},
"divisions": [],
"entries": [],
"featured": ""
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json
Ou chame a API diretamente. A API envolve o mesmo documento em um campo document. Um token de agente já nomeia seu projeto, então nenhum cabeçalho de projeto é enviado; se você enviar ScreenRig-Project, ele deve corresponder ao projeto do token. Forneça sua autorização de API pelo ambiente; veja Autenticação da API.
curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
--header "Authorization: Bearer $SCREENRIG_TOKEN" \
--header "Content-Type: application/json" \
--data '{"document":{"match":{},"divisions":[],"entries":[],"featured":""}}'