Hopp til innhold
Dialova

IRC-dokumentasjon · Avansert

Message tags: metadata i IRC-meldinger

Meldingstagger legger til metadata før resten av en IRC-melding. De kan inneholde et tidspunkt, en konto eller en batchreferanse. En ukjent tagg kan ignoreres i grensesnittet, men formatet må likevel analyseres korrekt.

Dialova-teamet · Kontrollert

Les taggfeltet #

Servermelding med to tagger
@time=2026-10-29T10:00:00.000Z;account=alice :Alice!u@cloak.example PRIVMSG #atelier :Bonjour

Feltet begynner med @ og slutter ved det første mellomrommet som ikke er escapet. Tagger skilles med ;. Hver nøkkel kan ha en verdi etter =. Rekkefølgen har ingen betydning, og nøkler skiller mellom store og små bokstaver. Isoler dette feltet før du deler opp meldingens parametere.

Dekod verdiene én gang #

Sekvens på protokollnivåDekodet verdi
\:Semikolon
\sMellomrom
\\Omvendt skråstrek
\rVognretur
\nLinjeskift

Escape-sekvensene gjelder taggverdien, ikke hele meldingsteksten. Taggverdier bruker UTF-8. En tom verdi og en manglende verdi er likeverdige her; grensesnittet skal ikke finne på en betydningsforskjell.

Den generelle capability-en og spesialiserte utvidelser #

message-tags annonserer støtte for hele formatet og muliggjør blant annet klienttagger og TAGMSG. Utvidelser som server-time, account-tag og batch bygger også på taggformatet, men forhandlingen av dem må ikke blandes sammen med den generelle message-tags-capability-en.

Oppdiktet klienttagg: ingen bestemt funksjon forutsettes
C: CAP REQ :message-tags
S: :irc.example CAP Alice ACK :message-tags
C: @+example.org/note=bonjour\sici TAGMSG #atelier

Prefikset + angir en klienttagg. Det gjør ikke en påstand fra klienten til en opplysning bekreftet av serveren. Skill mellom en konto serveren oppgir og vilkårlig tekst en deltaker sender.

Metadata med grenser, ikke ubegrensede meldinger #

Tagger har en egen størrelsesgrense, atskilt fra den historiske delen av meldingen. Det gjør ikke PRIVMSG-teksten ubegrenset. Ukjente tagger, ugyldige sekvenser og gjentatte nøkler håndteres etter spesifikasjonen. Unngå en parser som avviser alle nye utvidelser eller lagrer ubegrensede data på ubestemt tid.

Kilder og kontroll

Eksemplene bruker fiktive kallenavn og domener, bortsett fra tilkoblingspunkter som er uttrykkelig dokumentert. Utvidelser og nettverksspesifikke innstillinger er merket i teksten.