Saltar al contenido
Dialova

Documentación IRC · Avanzado

Message tags: metadatos de los mensajes IRC

Las etiquetas de mensajes añaden metadatos antes del resto de un mensaje IRC. Pueden incluir una hora, una cuenta o una referencia de lote. Una etiqueta desconocida puede ignorarse en la interfaz, pero su formato debe analizarse correctamente.

El equipo de Dialova · Verificado el

Leer la zona de etiquetas #

Trama del servidor con dos etiquetas
@time=2026-10-29T10:00:00.000Z;account=alice :Alice!u@cloak.example PRIVMSG #atelier :Bonjour

La zona empieza por @ y termina en el primer espacio sin escapar. Las etiquetas se separan con ;. Cada clave puede tener un valor después de =. El orden no tiene significado y las claves distinguen mayúsculas y minúsculas. Aísla esta zona antes de dividir los parámetros del mensaje.

Decodificar los valores una sola vez #

Secuencia en el protocoloValor decodificado
\:Punto y coma
\sEspacio
\\Barra inversa
\rRetorno de carro
\nSalto de línea

Los escapes afectan al valor de la etiqueta, no a todo el texto del mensaje. Los valores usan UTF-8. Un valor vacío y la ausencia de valor son equivalentes en este mecanismo; la interfaz no debe inventar una diferencia de significado.

La capacidad genérica y las extensiones específicas #

message-tags anuncia soporte del formato completo y permite, entre otras cosas, las etiquetas reservadas a clientes y TAGMSG. Extensiones como server-time, account-tag y batch también usan el formato de etiquetas, sin que debas confundir su negociación con la de la capacidad genérica.

Etiqueta de cliente ficticia: no se presupone ningún efecto funcional
C: CAP REQ :message-tags
S: :irc.example CAP Alice ACK :message-tags
C: @+example.org/note=bonjour\sici TAGMSG #atelier

El prefijo + identifica una etiqueta de cliente. No convierte lo que afirma el cliente en información certificada por el servidor. Debes distinguir entre una cuenta anunciada por el servidor y un texto arbitrario enviado por un participante.

Metadatos limitados, no mensajes infinitos #

Las etiquetas tienen un límite de tamaño distinto al de la parte histórica del mensaje. Su presencia no convierte el texto de PRIVMSG en ilimitado. Gestiona las etiquetas desconocidas, las secuencias no válidas y las claves repetidas según la especificación; evita un analizador que rechace cualquier evolución o conserve datos ilimitados indefinidamente.

Fuentes y verificación

Los ejemplos usan apodos y dominios ficticios, salvo los puntos de conexión expresamente documentados. Las extensiones y los ajustes específicos de una red se indican en el texto.