/watch (besseres /notify)

Viele moderne IRC-Netze unterstützen ein interessantes Feature: Das Watch-System. Dieses dient als besserer "Ersatz" für das in vielen IRC-Clients eingebaute Notify. Der Unterschied zu Notify besteht bei Watch darin, dass Notify auf einer polling-Methode basiert, das heisst, Notify fragt in regelmäßigen, oft kurzen Abständen beim IRC-Server nach, ob die Personen, die auf der Notify-Liste sind, auf dem Server anwesend sind.
Beim Watch-System wird nur einmalig dem Server Bescheid gegeben, über wessen kommen und gehen man informiert werden will, und der Server sagt einem dann, wenn eine dieser Personen kommt oder geht. Dadurch ergeben sich folgende Vorteile durch das Watch-System:

Der einzige Nachteil des Watch-System ist lediglich die Tatsache, dass es auf "unmodernen" IRC-Netzen nicht verfügbar ist. Wer mit der Zeit geht, sollte watch benutzen - es ist einfach eleganter und informativer.

Befehle des Watch-Systems

Alle Funktionen des Watch-Systems sind über den /watch-Befehl verfügbar. Jeder der Befehle besteht im Prinzip aus einem einzelnen Zeichen bzw. Buchstaben. Dabei ist die Gross-/Kleinschreibung der Befehlsbuchstaben zu beachten. Die einzelnen Befehle im überblick:
+nick Setzt den angegebenen Nickname auf Watch-Liste.
-nick Entfernt den angegebenen Nickname von der Watch-Liste.
s Zeigt alle Nicks auf der Watch-Liste im Kurzformat und eine Information darüber, wievele Nicks auf der Watch-Liste sind und auf wievielen Watch-Listen man selbst ist, an.
c Löscht alle Einträge von der Watch-Liste
l Listet alle Online-User auf und schickt den Away-Status
L Listet alle Online- und Offline-User und deren Away-Status
a Deaktiviert die Watch-Away-Meldungen
A Aktiviert die Watch-Away-Meldungen
m Deaktiviert das Senden einer Watch-Away-Meldung, wenn eine Person ihre Away-Meldung ändert (und schon away ist)
M Aktiviert die Watch-Away-Meldung für änderungen der Away-Meldung
n Deaktiviert das Senden des NotAway-Codes
N Aktiviert das Senden des NotAway-Codes

Wird kein Befehl angegeben, also einfach nur /watch ausgeführt wird dies wie /watch l gehandhabt.
Es ist problemlos möglich mehrere Befehle in einer Zeile auszuführen, indem man diese durch Leerzeichen getrennt hintereinander schreibt. Beispielsweise: /watch +nick1 +nick2 +nick3.

Kurzanleitung und Reply-Codes für Scripter

Wer sich selbst ein Watch-System bauen will, kann dies leicht tun: Bei (jedem) Verbinden mit dem IRC muss lediglich eine Nachricht /watch +nick1 +nick2 +nick3 +nickx an den IRC-Server geschickt werden. Der IRC-Server antwortet mit folgenden Reply-Codes und Antwort-Formaten:

Meldung, wenn ein User einen Nickname annimmt, der auf der Watch-Liste steht:
:servername 600 eigenes nick nick ident host logon-time :logged online

Meldung, wenn ein User, dessen Nickname auf der Watch-Liste steht, ein anderes annimmt oder den IRC verlässt:
:servername 601 eigenes nick nick ident host logon-time :logged offline

Meldung, wenn ein Nickname von der Watch-Liste entfernt wurde:
:servername 602 eigenes nick nick ident host logon-time :stopped watching

Meldung bei/watch s:
:servername 603 eigenes nick :You have Anzahl and are on Anzahl WATCH entries

Meldung, wenn bereits ein User einen Nickname hat, der gerade auf die Watch-Liste gesetzt wird oder bei /watch l oder /watch L:
:servername 604 eigenes nick nick ident host logon-time :is online

Meldung, wenn kein User den Nickname hat, der gerade auf die Watchliste hinzugefügt wird oder bei /watch L:
:servername 605 eigenes nick nick * * 0 :is offline

Diese Meldung wird bei /watch s bei der Kurzliste der Nicks geschickt:
:servername 606 eigenes nick :Nicks...

Meldung am Ende von /watch s , /watch l , /watch L :
:servername 607 eigenes nick :End of WATCH Anfrage-Code

Die Codes 600-607 sind quasi-Standard und sollten auch in dem Format in anderen Netzen mit Watch-Support sein. Die folgenden Codes sind D-T-Net-Erweiterung:

Meldung, wenn ein User, der neu auf die Watch-Liste kommt, bereits away ist:
:servername 608 eigenes nick nick ident host Zeitpunkt :Awaynachricht des Users
Ist Away-Watch aktiviert, folgt dieser Code auf jedes 600 und 604

Meldung, wenn ein User in diesem Moment away geht (und Away-Watch aktiviert ist):
:servername 609 eigenes nick nick ident host Zeitpunkt :Awaynachricht des Users

Meldung, wenn ein User aus dem Away-Zustand zurückkehrt (und Away-Watch aktiviert ist):
:servername 610 eigenes nick nick ident host Zeitpunkt :vorherige Awaynachricht

Meldung, wenn ein User nicht Away ist (beim Hinzufügen auf die Watch-List):
:servername 611 eigenes nick nick ident host Zeitpunkt :not away
Ist Away-Watch aktiviert und dieser NotAway-Code nicht deaktiviert, folgt er auf jedes 600 und 604.

Meldung, wenn Watch-Away-Notices aktiviert oder deaktiviert werden:
:servername 612 eigenes nick Status :Watch Away-Notices

Meldung, wenn Watch-Away-Notices für Away-änderungen aktiviert oder deaktiviert werden:
:servername 613 eigenes nick Status :repeating Watch Away-Notices

Meldung, wenn der Watch-NotAway-Code aktiviert oder deaktiviert wird:
:servername 614 eigenes nick Status :Watch NotAway-Notice

Anwendungshinweise

Es könnte passieren, dass die Texte des Watch-Systems (bei 600-605, 607, 611-613) eingedeutscht werden. Die Position der aussagenden Worte (bei 603 z.B. die Anzahlen) werden dabei jedoch beibehalten. Auf keinen Fall dürfen die statischen Teile (oben nicht kursiv dargestellt) der Meldungen beachtet werden.

Welchen Sinn haben die vielen Einstellungsmöglichkeiten?

Die vielen Einstellungsmöglichkeiten haben natürlich den Sinn, das Watch-System möglichst optimal auf die eigenen Bedürfnisse konfigurieren zu können. Von dieser Möglichkeit sollte auch unbedingt gebrauch gemacht werden, da die Standardvoreinstellungen sich ändern können.

Wenn Away-Watch generell benutzt werden soll, muss dieses durch /watch A auch explizit aktiviert werden, auch wenn es das ohnehin momentan standardmäßig schon ist. Wird Away-Watch hingegen nicht benutzt, sollte es auch mit /watch a deaktiviert werden.
Die Einstellung zum Deaktivieren der Benachrichtigung einer Neusetzung der Away-Meldung wird zur Verfügung gestellt, da leider manche IRC-Client-Scripts in kurzen Zeitabständen die Awaymessage automatisch neusetzen (um die Awayzeit, die sie in die Awaymessage schreiben, zu verändern) und man entsprechend bei jeder Neusetzung benachrichtigt würde, wenn man es nicht deaktivieren könnte. Standardmäßig ist die Benachrichtigung über Neusetzungen dennoch aktiviert.

Der Watch-NotAway-Code ist deaktivierbar, da es auch ohne ihn möglich ist, den Away-Status eines Users herauszubekommen: Wenn nach einem Code 600 oder Code 604 keine Watch-Away-Meldung kommt, ist der User folglich nicht away, andersfalls würde Code 608 gesendet. Wenn man lediglich über das Away-Gehen und -Zurückkommen von Usern informiert werden möchte, benötigt man den Code 611 daher nicht. Am einfachsten kann soetwas in einer zweizeiligen Darstellung, beispielsweise so, erfolgen:

* User (ident@host) ist im IRC
* User (ident@host) ist away: Awaynachricht
Für eine Darstellung der Form
* User (ident@host) ist im IRC und away: Awaynachricht
ist diese Methode (ohne Code 611) jedoch unpraktikabel. Hier empfiehlt es sich, den Code 604 zu ignorieren, und stattdessen einfach auf die Awaymeldung oder den Not-Away-Code zu warten, da einer von beiden bei Aktiviertem Not-Away-Code erscheinen muss. Momentan ist der NotAway-Code standardmäß aktiviert, muss jedoch explizit aktiviert werden, wenn er erforderlich ist. Ebenso sollte er deaktiviert werden, wenn er nicht benötigt wird, da so auch Traffic gespart wird.
Die drei Einstellungen können gleichzeitig in einer einzelnen Befehlszeile gesetzt werden, beispielsweise durch /watch A m n oder auch mit Setzen der Watch-Liste: /watch A M N +nick1 +nick2 . Wird ein bestimmtes Serververhalten erwartet, das durch die Einstellungen festlegbar ist, müssen diese Optionen explizit gesetzt werden.
Letzte Änderung dieser Seite erfolgte am 16.05.2004 um 19:58:38 Uhr
(das war vor 4957 Tagen)