Visão Geral

O Matchday Automator (v1.9.x) automatiza cartelas de Jogos e Escalação no Photoshop (UXP). O fluxo perfeito: autenticar, escolher idioma e clube, definir preferências, selecionar a competição ativa e Sincronizar Clube, escolher a automação e Aplicar — com log e desfazer.

Problemas comuns

Camadas não atualizam

Verifique se os nomes são canônicos (v2) e idênticos aos listados nesta página. O plugin atualiza todas as camadas de texto com o mesmo nome.

Sem dados após sincronizar

Confirme se selecionou a competição ativa antes de clicar em Sincronizar Clube. O cache local pode manter dados; se necessário, limpe o cache no menu do painel.

Servidor bloqueia .json

Use o proxy de leitura /api/data.php?path=football/<rel>. Há exemplos no bloco de “Bases de dados”.

Instalar & preparar

  1. Abra o Photoshop (UXP 23+).
  2. Instale o plugin Matchday Automator e abra o painel.
  3. Autentique com sua licença.
  4. Selecione o idioma e, nas Preferências, escolha País, Liga e Time.
  5. Garanta que seu PSD use camadas canônicas (v2) listadas abaixo.
Instalação manual (se a extensão não aparecer no menu)
  1. Renomeie o arquivo MatchdayAutomator.zxp para .zip e extraia.
  2. Copie a pasta extraída para a pasta de extensões UXP compatível com sua instalação do Photoshop.

Configurar seu PSD

Dicas práticas para deixar seu arquivo pronto para automação: nomes canônicos de camadas, tipografia e objetos inteligentes.

Checklist rápido (PSD)

  • Usa camadas canônicas (v2) nos textos que quer automatizar.
  • Datas/horas coerentes no JSON (ou datetime ISO).
  • Se usar templates, confira placeholders como @{{HOME}}, @{{AWAY}}, @{{DATETIME_LOCAL}}.

Nomenclatura de camadas (texto)

O plugin atualiza todas as camadas de texto cujo nome corresponda às chaves canônicas (v2).

  • Use exatamente os nomes canônicos (evite sufixos/prefixos).
  • Separe as partes em camadas distintas quando for útil: datetime.date e datetime.time.
  • Campos compostos são aceitos: fixture.date-time, match.round-and-date.

Tipografia e estilos

  • Defina fonte, corpo, tracking e cor nos textos antes de automatizar.
  • Preservamos estilos; trocamos apenas o conteúdo textual.
  • Para listas (ex.: titulares), use quebra de linha (Enter) entre itens.

Objetos inteligentes

A troca de Smart Objects pode ser feita manualmente (Replace Contents). O plugin oferece troca em lote opcional para camadas com nome padronizado (ex.: Escudo), quando disponível.

Camadas canônicas (v2)

Básico (match.*)

  • match.home, match.away, match.confronto, match.home-x
  • match.round, match.round-label, match.round-ordinal, match.round-full, match.round-and-date
  • match.date, match.time, match.date-time, match.weekday
  • match.venue, match.city, match.score

Estendido

  • team.home, team.away
  • fixture.home-x, fixture.title, fixture.title-with-result, fixture.date-time, fixture.subtitle
  • datetime.day-name, datetime.date, datetime.time
  • competition.name, competition.season, competition.timezone
  • score.home, score.away, score.compact
  • status.code, status.period, status.minute, status.badge
  • result.team (W/D/L do ponto de vista do clube)
  • template.priority.1.4, template.generic

Tabela de mapeamento — Camada → Origem no JSON / Lógica

Camada (padrão) Origem Exemplo Aliases
match.roundround (número)1Rodada
match.round-labelroundLabel (texto)"01"Rodada Decimal
match.round-ordinalDerivado de round"1ª"
match.round-fullDerivado: ordinal + palavra"12ª Rodada"
datetime.day-nameDerivado de datetime"Sábado"Dia Semana
datetime.dateDerivado de datetime"2025-04-05"Data
datetime.timeDerivado de datetime"16:00"Hora
venue.namevenue.name"Estádio Central"Estádio
venue.cityvenue.city"Cidade"Cidade
team.homehome.name"Clube A"Time Casa
team.awayaway.name"Clube B"Time Fora
fixture.home-xDerivado: home.name + " x ""Clube A x "
fixture.titleDerivado: home + " x " + away"Clube A x Clube B"Confronto
fixture.date-timeDerivado: date + " | " + time"2025-04-05 | 16:00"Data e Hora
header.round-dateDerivado: round-label + " - " + date + " | " + time"01 - 2025-04-05 | 16:00"Rodada e Data
template.priority.1 … template.priority.4templates.priority[n].textTexto com variáveisPrioridade 1 … 4
template.generictemplates.genericAnnouncement"Clube A x Clube B • 05/04 16:00 • Estádio Central"Anúncio genérico
lineup.startersUI de EscalaçãoLista com \nTitulares
lineup.numbersUI de EscalaçãoLista com \nNumeração
lineup.subsUI de Escalação"12 Fulano\n22 Beltrano"Reservas
Exemplo — Round por idioma (locale)
Entrada: round = 1
PT-BR → round-ordinal: "1ª"   | round-full: "1ª Rodada"
EN    → round-ordinal: "1st"  | round-full: "1st Round"
ES    → round-ordinal: "1.ª"  | round-full: "1.ª Jornada"
Exemplo — Tokens nos templates
Camada: template.priority-1
Texto:  @{{HOME}} x @{{AWAY}} — @{{DATE}} | @{{TIME}} · @{{VENUE}}

Com dados: HOME=Clube A, AWAY=Clube B, DATE=31/05, TIME=18:30, VENUE=Estádio Central
Saída:    Clube A x Clube B — 31/05 | 18:30 · Estádio Central

Fluxo perfeito (v1.9.x)

  1. Autenticar: informe sua licença.
  2. Idioma: escolha o idioma na tela de boas‑vindas.
  3. Preferências: selecione PaísLigaTime e, se desejar, ajuste formatação (rodada, data, hora, caixa, dia da semana).
  4. Base de Dados: escolha a competição ativa e clique em Sincronizar Clube. O plugin lê /data/football do site (com fallback via proxy) e salva cache local.
  5. Automação: selecione Jogos ou Escalação, revise e clique em Atualizar.

Você pode desfazer a última aplicação (snapshot) e acompanhar tudo no log do painel.

Base de Dados — selecionar competição e sincronizar
Aplicar e log de alterações

Bases de dados (JSON/CSV)

O plugin aceita CSV e JSON. Para Jogos, recomendamos o schema v2 (abaixo). Para Atletas, um objeto com jogadores (ou players/elenco).

Exemplo — Jogos (schema v2)

{
  "schemaVersion": "2.0",
  "competition": {
    "id": "br-serie-b-2025",
    "name": "Brasileirão Série B",
    "season": "2025",
    "timezone": "America/Sao_Paulo"
  },
  "matches": [
    {
      "id": "sbb-2025-001",
      "round": 1,
      "roundLabel": "01",
      "datetime": "2025-04-05T16:00:00",
      "home": { "id": "clube-a", "name": "Clube A" },
      "away": { "id": "clube-b", "name": "Clube B" },
      "venue": { "name": "Estádio Central", "city": "Cidade" }
    }
  ]
}

O plugin calcula rótulos de rodada e converte datas/horas conforme preferências.

Exemplo — Atletas

{
  "jogadores": [
    { "nome": "Goleiro 1", "numero": 1,  "posicao": "Goleiro" },
    { "nome": "Zagueiro 1", "numero": 3,  "posicao": "Zagueiro" },
    { "nome": "Atacante 1", "numero": 9, "posicao": "Atacante" }
  ]
}
  • Jogos (mínimo): round (ou roundLabel), home.name, away.name; datetime recomendado.
  • Atletas (mínimo): nome, numero e posicao. O plugin aceita sinônimos (name/number/position).
Fonte remota: estrutura suportada e proxy

Quando hospedado neste site, o plugin lê em /data/football e, se o servidor bloquear .json, usa automaticamente o proxy em /api/data.php?path=football/<rel>.

Exemplos de teste (200 esperado):

  • /api/data.php?path=football/index.json
  • /api/data.php?path=football/countries/br/leagues.json

Automações

⚽ Jogos

  • Lista de partidas filtrada pelo time selecionado.
  • Preenche as camadas canônicas (match.*, datetime.*, fixture.*, competition.* e score/status quando houver placar).
  • Atualiza múltiplas camadas de texto com o mesmo nome, em todos os artboards.
  • 💡 Use template.priority.1..4 para textos prontos com placeholders.

👥 Escalação

  • Seleção de 11 titulares (exige 1 goleiro), capitão, reservas e ordem.
  • Definição de capitão, reservas e ordenação.
  • Geração automática de listas de Titulares, Numeração e Reservas.

Aplicar & Log

Clique em Atualizar para propagar os dados. O console embutido mostra tudo que foi alterado. Você pode Desfazer a última aplicação (snapshot de texto por camada).

Log de aplicação e botão Desfazer

FAQ

Quais campos de Jogos são obrigatórios?

No mínimo: round (ou roundLabel), home.name e away.name. datetime e venue melhoram rótulos e templates.

Como devo nomear as camadas?

Use as chaves canônicas (v2) — ex.: match.round-label, fixture.title, datetime.date, score.home.

Como funciona o cache/limite no Starter?

O plugin faz cache com TTL (país/ligas/times/partidas). No Starter, há um medidor de cota (requisições/mês) exibido no painel; o Pro remove o limite.

Log de versões

Entradas mais recentes primeiro.

v1.9.3 — 01/10/2025
  • Camadas canônicas (v2) consolidadas e documentadas.
  • Sincronizar Clube com fallback via proxy /api/data.php e cache com TTL.
  • Preferências por time: rodada, data, hora, caixa e dia da semana.
  • Botão Desfazer (snapshot de texto por camada).