Pular para o conteúdo

Pacotes de dados

Especialista

Copia as tuas Regras de escolha, padrões de nomes ou verificações de nomes de lançamentos de uma instalação para outra.

Um pacote de dados é um ficheiro JSON só com dados. Não pode executar código, ir buscar um endereço, adicionar um título, alterar um utilizador, tocar em ficheiros multimédia nem levar segredos.

  • És o proprietário.
  • Tens uma chave de API com o âmbito admin. As chaves com health_read, read ou write são recusadas.
  • Tens o JSON do pacote. Usa o pacote que te deram, ou escreve um a partir da estrutura em Para especialistas.

Todas as rotas estão em http://your-server:6262.

  1. Envia o pacote para POST /api/v1/data-packs/validate. Verifica sem guardar. Deves ver "valid": true.
  2. Envia o mesmo JSON para POST /api/v1/data-packs. Guarda o pacote como inativo. Nada muda ainda.
  3. Abre GET /api/v1/data-packs para listar os pacotes guardados. GET /api/v1/data-packs/{id} exporta um.
  4. Abre GET /api/v1/data-packs/{id}/preview com um pick_rule_id por regra e no máximo um naming_id. Recebes um approval_hash.
  5. Envia a mesma escolha e o hash para POST /api/v1/data-packs/{id}/apply. Deves ver o id do pacote e os ids das regras que escolheste.

Pré-visualização:

GET /api/v1/data-packs/home-cinema/preview?pick_rule_id=balanced-web&naming_id=readable

Corpo do apply:

{
"pick_rule_ids": ["balanced-web"],
"naming_id": "readable",
"approval_hash": "the hash returned by preview"
}
  • Cada Regra de escolha selecionada é criada de novo. Não é atribuída a nenhum título.
  • Um conjunto de nomes selecionado substitui apenas estas definições:
    • Padrões de ficheiro e pasta de filmes.
    • Padrões de pasta de série, pasta de temporada, pasta de especiais, episódio, diário e anime.
    • Padrões de pasta de artista, pasta de álbum, pasta de disco, faixa e faixa de vários discos.
    • Formatação de dois pontos e de carateres ilegais.
    • Estilo de vários episódios, estilo da data de emissão e dígitos do número absoluto.
  • Renomear ao importar, o comportamento das pastas, a leitura de etiquetas e os limites de análise nunca vão num pacote.

Sintoma: O apply diz que a pré-visualização está desatualizada. Causa: O pacote, o nome de uma Regra de escolha que entraria em conflito, ou uma definição de nomes que seria substituída mudou depois da pré-visualização. Nada foi aplicado. Solução: Faz a pré-visualização de novo e envia o novo hash.

Sintoma: A importação diz que o pacote já existe. Causa: Os pacotes nunca são substituídos. Solução: Dá ao novo pacote outro id.

Sintoma: Erro de permissão. Causa: A chave não é uma chave admin criada pelo proprietário. Solução: Cria uma chave admin como proprietário e usa-a.

Limites e recusas
Limite Valor
format holyarrs-data-pack
version 1
Tamanho de um pacote ou de uma exportação 256 KiB
Regras de escolha 32
Conjuntos de nomes 8
Verificações de nomes de lançamentos 256
Ids 1 a 64 carateres: letras minúsculas, dígitos, pontos, hífenes, sublinhados. Começam e acabam com uma letra ou dígito
Corpo do pedido apply 16 KiB

Um pacote é recusado por campos duplicados ou desconhecidos, JSON extra depois do fim, nomes de qualidade ou de traço desconhecidos, palavras de nomes inválidas, uma versão diferente de 1, ou valores acima destes limites. Cada verificação de nome de lançamento passa pelo analisador do HolyArrs e tem de corresponder a todos os factos que espera.

Estrutura do pacote
Campo Contém
format, version, id, name Cabeçalho obrigatório
pick_rules Cada uma tem id, name, kinds e rules (degraus, traços, limites de tamanho, protocolo, idioma, ordem)
naming Cada um tem id, name e patterns (as definições de nomes listadas acima)
release_tests Cada um tem id, name, release_name, hints e expected (tipo, qualidade, resolução, origem, codec, sinalizadores)
Rotas e respostas
Rota Sucesso Recusa
POST /api/v1/data-packs/validate 200 com valid e um resumo 400 inválido, 413 demasiado grande
POST /api/v1/data-packs 201 com um resumo, estado inactive 409 id já existe, 400, 413
GET /api/v1/data-packs 200 com data_packs
GET /api/v1/data-packs/{id} 200 com o JSON do pacote 404
GET /api/v1/data-packs/{id}/preview 200 com approval_hash 400 para qualquer consulta que não seja pick_rule_id e naming_id, 404
POST /api/v1/data-packs/{id}/apply 200 com pack_id, pick_rule_ids, naming_id 409 desatualizado, 400, 404

O HolyArrs é gratuito. Se te poupou tempo, dá-lhe uma estrela no GitHub, patrocina-o ou oferece-me um café.