Norbot

Aus Wiki CCC Göttingen
Zur Navigation springen Zur Suche springen

Norbot ist ein neuer XMPP/Jabber Bot für den offiziellen cccgoe MUC. Er soll auf kurz oder lang spacemaster7000 (den Bot, nicht die Hardware) ersetzen und einiges mehr können.

Technik[Bearbeiten]

Der spacemaster7000 ist in Perl geschrieben und arbeitet sehr direkt mit dem XMPP Protokoll. Er lauscht auf Nachrichten, sucht nach Befehlen und antwortet dann direkt mit einer eigenen Nachricht. Ein Thread fragt alle N Sekunden den Spacemaster ab und ändert das Topic im MUC Raum entsprechend.

Norbot wird auf Python und xmmpy aufbauen und aus zwei Komponenten bestehen:

Der Core-Bot übernimmt die XMPP spezifische Buchführung (welcher Nick ist mit welchen Rechten in welchem Raum, wer ist gerade mit welchem Status online, welche JID gehören zu welchem MUC Nick (in nicht-anonymen MUCs) u.s.w.) und abstrahiert das Protokoll weit genug, um komfortabel damit arbeiten zu können.

Module können zur Laufzeit geladen, entfernt oder aktualisiert werden und implementieren die eigentliche Funktionalität, indem sie auf Events reagieren, die vom Bot ausgelöst werden. Das kann synchron oder in einem separaten Thread geschehen.

Status[Bearbeiten]

Der Bot läuft momentan nur unter Aufsicht wenn ich gerade daran rum experimentiere und ist noch nicht stabil. Wünsche und Feedback nehme ich aber gern entgegen.

--Defnull 17:28, 24. Jan. 2012 (CET)

Ich hab quasi alles wieder umgeworfen und eine Art CGI-Schnittstelle für den Bot gebaut. Befehle werden als Scripte in einem bestimmten Verzeichnis abgelegt und können in einer beliebigen Sprache implementiert sein. Die Ausgabe des Skriptes wird an den Befehlsgeber zurück geschickt. Alles noch nicht so ausgereift, aber es wird.

Funktionen: norbot[Bearbeiten]

  • whois [nick]: In einem nicht-anonymen MUC verrät dieser Befehl die JID, die sich hinter einem Nick verbirgt.
  • hit [nick]: Tut fürchterliche Dinge.
  • slap [nick]: Alias für hit.
  • status: gibt den (rohen) Status String vom Spacemaster aus.
  • die in a fire: Tötet den Bot. Praktisch, wenn er mal Amok laufen sollte.

Funktionen: mastermind[Bearbeiten]

  • mastermind: Startet ein Spiel in einem MUC oder Query.
  • code [guess]: Gibt in einem laufenden Spiel einen Tip ab.