Vai al contenuto
Dialova

Documentazione IRC · Avanzato

Batch: raggruppare eventi IRC collegati

batch segnala che più messaggi IRC appartengono allo stesso insieme. Il tipo di batch ne spiega la relazione: per esempio un netsplit o un estratto della cronologia. Un batch non è automaticamente una conversazione multilinea.

Il team di Dialova · Verificato il

Aprire un batch, associarvi messaggi e chiuderlo #

Scambio IRC: C = client, S = server
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

Il server apre il batch con + seguito da un identificativo opaco e da un tipo. I messaggi associati portano il tag batch corrispondente. Il batch termina con - seguito dallo stesso identificativo. L’identificativo distingue maiuscole e minuscole e non va interpretato come un dato funzionale.

Negoziazione e tipo di batch #

Il client richiede la capacità batch e attende ACK. Deve comprendere il formato dei tag. I tipi di batch non sono un elenco negoziato tramite CAP: ogni estensione definisce il significato del proprio tipo. Un tipo sconosciuto non autorizza a scartarne il contenuto.

Un batch può essere vuoto. Più batch possono intrecciarsi o essere annidati. Un solo buffer globale, o l’ipotesi che tutti i messaggi successivi appartengano al batch, interpreterebbe male scambi validi.

Cronologia e stato attuale #

Il tipo chathistory raggruppa eventi passati. Non far uscire un utente attualmente presente solo perché un vecchio QUIT compare in un batch storico: la visualizzazione e le modifiche dello stato attuale hanno funzioni diverse.

Alla data della verifica, la capacità per richiedere la cronologia resta draft/chathistory, mentre il tipo di batch chathistory è definitivo. L’estensione draft/multiline descrive un altro uso ancora. Supportare batch non basta a garantire queste funzionalità.

Limitare e completare l’elaborazione #

  • Conservare una tabella di batch per identificativo, non una sola variabile.
  • Mantenere il collegamento con un eventuale batch padre.
  • Limitare dimensione e numero dei batch e gestire le interruzioni del trasporto.
  • Non mostrare una riproduzione della cronologia come una nuova azione utente e non rispondere automaticamente agli eventi storici.

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.