Saltar para o conteúdo
Dialova

Documentação IRC · Avançado

Message tags: metadados das mensagens IRC

As etiquetas de mensagens acrescentam metadados antes do resto de uma mensagem IRC. Podem conter uma hora, uma conta ou uma referência de lote. Uma etiqueta desconhecida pode ser ignorada na interface, mas o seu formato deve ser analisado corretamente.

A equipa do Dialova · Verificado em

Ler a zona de etiquetas #

Linha do servidor com duas etiquetas
@time=2026-10-29T10:00:00.000Z;account=alice :Alice!u@cloak.example PRIVMSG #atelier :Bonjour

A zona começa por @ e termina no primeiro espaço sem escape. As etiquetas são separadas por ;. Cada chave pode ter um valor depois de =. A ordem não tem significado e as chaves distinguem maiúsculas e minúsculas. Isola esta zona antes de dividir os parâmetros da mensagem.

Descodificar os valores uma única vez #

Sequência no protocoloValor descodificado
\:Ponto e vírgula
\sEspaço
\\Barra invertida
\rRetorno do cursor
\nMudança de linha

Os escapes dizem respeito ao valor da etiqueta, não ao texto da mensagem inteira. Os valores usam UTF-8. Um valor vazio e a ausência de valor são equivalentes neste mecanismo; a interface não deve inventar uma diferença de significado.

A capacidade genérica e as extensões específicas #

message-tags anuncia suporte do formato completo e permite, entre outras coisas, etiquetas reservadas a clientes e TAGMSG. Extensões como server-time, account-tag e batch também usam o formato das etiquetas, sem que a sua negociação deva ser confundida com a da capacidade genérica.

Etiqueta de cliente fictícia: sem efeito funcional pressuposto
C: CAP REQ :message-tags
S: :irc.example CAP Alice ACK :message-tags
C: @+example.org/note=bonjour\sici TAGMSG #atelier

O prefixo + identifica uma etiqueta de cliente. Não transforma uma afirmação do cliente em informação certificada pelo servidor. É preciso distinguir uma conta anunciada pelo servidor de um texto arbitrário enviado por um participante.

Metadados limitados, não mensagens infinitas #

As etiquetas têm um limite de tamanho distinto da parte histórica da mensagem. A sua presença não torna ilimitado o texto de PRIVMSG. Trata etiquetas desconhecidas, sequências inválidas e chaves repetidas segundo a especificação; evita um analisador que rejeite qualquer evolução ou conserve dados sem limites indefinidamente.

Fontes e verificação

Os exemplos usam alcunhas e domínios fictícios, salvo os pontos de ligação expressamente documentados. As extensões e definições específicas de uma rede são assinaladas no texto.