Aller au contenu
Dialova

Documentation IRC · Avancé

Batch : regrouper des événements IRC liés

batch permet de signaler que plusieurs messages IRC appartiennent à un même ensemble. Le type du lot explique leur relation : un netsplit ou un extrait d’historique, par exemple. Un batch n’est pas automatiquement une conversation multiligne.

Équipe Dialova · Vérifié le

Ouvrir, rattacher et fermer un lot #

Échange IRC : C = client, S = serveur
S: :irc.example BATCH +lot1 netsplit irc-a.example irc-b.example
S: @batch=lot1 :Bob!u@cloak.example QUIT :Connexion interrompue
S: @batch=lot1 :Chloe!u@cloak.example QUIT :Connexion interrompue
S: :irc.example BATCH -lot1

Le serveur ouvre le lot avec + suivi d’un identifiant opaque, puis un type. Les messages associés portent le tag batch correspondant. Le lot se termine par - suivi du même identifiant. L’identifiant est sensible à la casse ; il ne faut pas lui attribuer une signification métier.

Négociation et type de lot #

Le client demande la capacité batch et attend ACK. Il doit comprendre le format des tags. Les types de batch ne sont pas, eux, une liste négociée par CAP : chaque extension décrit le sens de son type. Un type inconnu n’autorise pas à supprimer son contenu.

Un lot vide est possible. Plusieurs lots peuvent s’entrelacer et des lots peuvent être imbriqués. Un seul tampon global ou une hypothèse « tous les messages suivants appartiennent au lot » interpréterait mal des échanges valides.

Historique et état courant #

Le type chathistory regroupe des événements passés. Ne faites pas quitter un membre actuellement présent simplement parce qu’un ancien QUIT figure dans un lot historique : la restitution visuelle et les mutations d’état courant n’ont pas la même fonction.

À la date de vérification, la capacité de demande d’historique reste draft/chathistory, alors que le type de lot chathistory est finalisé. L’extension draft/multiline décrit encore un autre usage. Le support de batch ne suffit pas à promettre ces fonctionnalités.

Borner et terminer le traitement #

  • Conserver une table de lots par identifiant, pas une variable unique.
  • Garder le lien avec un éventuel lot parent.
  • Borner taille et nombre de lots, puis gérer les interruptions de transport.
  • Ne pas afficher un replay comme une nouvelle action utilisateur ni répondre automatiquement à des événements historiques.

Sources et vérification

Les exemples utilisent des pseudos et domaines fictifs, sauf les points de connexion explicitement documentés. Les extensions et réglages propres à un réseau sont signalés dans le texte.