IRC-Logger für #django
Es gibt jetzt einen IRC-Logger für #django auf freenode.net. Seit der loglibrary ausgefallen ist, dachte ich darüber nach, meinen eigenen zu erstellen. Also begann ich, die für einen IRC-Logger benötigten Dinge zu bauen. Die Schnittstelle selbst ist natürlich mit django geschrieben.
Wie immer ist der Quellcode in meiner Trac-Instanz verfügbar. Derzeit läuft er nur in #django, aber er kann leicht auf andere Kanäle erweitert werden. Und er speichert die Protokollzeilen in einer Datenbank, sodass ich in der Lage sein werde, Suchfunktionen und dergleichen hinzuzufügen. Er hat bereits eine Kalenderansicht der Protokolle.
Das Protokollieren selbst erfolgt mit muh - ein netter IRC-Proxy, der das Protokollieren in Named Pipes ermöglicht. Dann gibt es ein Skript fetch.py, das die Zeilen aus der Named Pipe zieht und sie in der Datenbank speichert. Der letzte Teil ist der django-basierte Viewer für diese Protokolle.
Aktualisierung: Das Protokollieren erfolgt jetzt mit einem dedizierten IRC-Logger, der in Python geschrieben ist. Er befindet sich im Quellcodebaum als loggerbot.py.
Ich hätte generische Ansichten in Django verwenden können, nur dass ich sie parameterisieren musste. Das habe ich mit einer Wrapper-Funktion gemacht, die Dinge von den Schlüsselwörtern einer View-Funktion zu den extra_lookup-Argumenten und den extra-Kontext-Schlüsselwörtern der generischen Ansichten verschiebt. Sie können den Code im Repository sehen.
Der Rest ist nur Standard-Django-Zeug: generische Vorlagen (die den coolen regroup-Tag nutzen) und einige benutzerdefinierte Tags für den Kalender und die Benutzerfarbgebung. Ein bisschen Modell-Hackerei und das war's eigentlich. Schön und einfach. Es hat nur ein paar Stunden gedauert, um das zusammenzubauen, und das schließt das Herumspielen mit muh und Named Pipes ein ...