Vai al contenuto
Dialova

Documentazione IRC · Avanzato

Message tag: i metadati dei messaggi IRC

I message tag aggiungono metadati prima del resto di un messaggio IRC. Possono contenere un orario, un account o un riferimento a un batch. Un tag sconosciuto può essere ignorato nell’interfaccia, ma il suo formato va analizzato correttamente.

Il team di Dialova · Verificato il

Leggere la sezione dei tag #

Riga del server con due tag
@time=2026-10-29T10:00:00.000Z;account=alice :Alice!u@cloak.example PRIVMSG #atelier :Bonjour

La sezione inizia con @ e termina al primo spazio non sottoposto a escape. I tag sono separati da ;. Ogni chiave può avere un valore dopo =. L’ordine non ha significato e le chiavi distinguono maiuscole e minuscole. Isola questa sezione prima di suddividere i parametri del messaggio.

Decodificare i valori una sola volta #

Sequenza sul protocolloValore decodificato
\:Punto e virgola
\sSpazio
\\Barra inversa
\rRitorno carrello
\nAvanzamento riga

L’escape riguarda il valore del tag, non il testo dell’intero messaggio. I valori dei tag sono in UTF-8. Un valore vuoto e l’assenza di valore sono equivalenti in questo meccanismo; l’interfaccia non deve inventare una differenza di significato.

La capacità generica e le estensioni specifiche #

message-tags annuncia il supporto del formato completo e permette, tra l’altro, i tag riservati ai client e TAGMSG. Anche estensioni come server-time, account-tag e batch usano il formato dei tag, senza che la loro negoziazione vada confusa con quella della capacità generica.

Tag client fittizio: nessun effetto funzionale presunto
C: CAP REQ :message-tags
S: :irc.example CAP Alice ACK :message-tags
C: @+example.org/note=bonjour\sici TAGMSG #atelier

Il prefisso + identifica un tag client. Non trasforma un’affermazione del client in un’informazione certificata dal server. Un account annunciato dal server e un testo arbitrario inviato da un partecipante devono restare distinti.

Metadati limitati, non messaggi infiniti #

I tag hanno un limite di dimensione distinto dalla parte storica del messaggio. La loro presenza non rende illimitato il testo di PRIVMSG. Tag sconosciuti, sequenze non valide e chiavi ripetute vanno gestiti secondo la specifica; evita un parser che rifiuti ogni evoluzione o conservi indefinitamente dati senza limiti.

Fonti e verifica

Gli esempi usano nickname e domini fittizi, tranne gli endpoint esplicitamente documentati. Le estensioni e le impostazioni specifiche di una rete sono indicate nel testo.