Zum Inhalt springen
Dialova

IRC-Dokumentation · Experten

Message-Tags: Metadaten in IRC-Nachrichten

Message-Tags ergänzen Metadaten vor dem übrigen Teil einer IRC-Nachricht. Sie können einen Zeitpunkt, ein Konto oder eine Batch-Zuordnung enthalten. Unbekannte Tags dürfen in der Oberfläche ignoriert werden; ihr Format muss trotzdem korrekt analysiert werden.

Dialova-Team · Überprüft am

Den Tag-Abschnitt lesen #

Servernachricht mit zwei Tags
@time=2026-10-29T10:00:00.000Z;account=alice :Alice!u@cloak.example PRIVMSG #atelier :Bonjour

Der Abschnitt beginnt mit @ und endet am ersten nicht maskierten Leerzeichen. Tags werden durch ; getrennt. Nach jedem Schlüssel kann mit = ein Wert folgen. Die Reihenfolge hat keine Bedeutung, die Schlüssel unterscheiden Groß- und Kleinschreibung. Trenne die Nachrichtenparameter erst, nachdem du diesen Abschnitt abgetrennt hast.

Werte genau einmal dekodieren #

Übertragene SequenzDekodierter Wert
\:Semikolon
\sLeerzeichen
\\Backslash
\rWagenrücklauf
\nZeilenumbruch

Die Maskierung betrifft den Tag-Wert, nicht den gesamten Nachrichtentext. Tag-Werte sind UTF-8-kodiert. Ein leerer Wert und ein fehlender Wert sind hier gleichwertig. Eine Oberfläche darf keinen Bedeutungsunterschied erfinden.

Die allgemeine Capability und spezialisierte Erweiterungen #

message-tags signalisiert die Unterstützung des vollständigen Formats und ermöglicht insbesondere Client-Tags und TAGMSG. Auch server-time, account-tag und batch verwenden das Tag-Format. Ihre Aushandlung darf deshalb aber nicht mit der der allgemeinen Capability gleichgesetzt werden.

Fiktives Client-Tag ohne angenommene Funktionswirkung
C: CAP REQ :message-tags
S: :irc.example CAP Alice ACK :message-tags
C: @+example.org/note=bonjour\sici TAGMSG #atelier

Das Präfix + kennzeichnet ein Client-Tag. Es macht eine Behauptung des Clients nicht zu einer vom Server bestätigten Information. Ein vom Server gemeldetes Konto und beliebiger Text eines Teilnehmers müssen unterschieden werden.

Begrenzte Metadaten, keine unbegrenzten Nachrichten #

Für Tags gilt eine eigene Längengrenze neben dem historischen Nachrichtenteil. Ihre Verwendung hebt das Textlimit von PRIVMSG nicht auf. Unbekannte Tags, ungültige Escape-Sequenzen und doppelte Schlüssel sind nach Spezifikation zu behandeln. Vermeide Parser, die jede Erweiterung ablehnen oder unbegrenzt Daten aufbewahren.

Quellen und Überprüfung

Die Beispiele verwenden erfundene Nicknames und Domains. Ausgenommen sind ausdrücklich dokumentierte Verbindungsadressen. Netzwerkspezifische Erweiterungen und Einstellungen werden im Text gekennzeichnet.