IRC-Bot

Aus II-Wiki
Wechseln zu: Navigation, Suche

Idee ist den bisherigen Eggdrop durch eine eigene Implementierung abzulösen. Das wird in Java geschehen.

Motivation

Der Eggdrop an sich ist ein Bot, der eigentlich administrative Aufgaben übernimmt. Leute Oppen, kicken. Einfach für Ordnung sorgen.

Da aber in den von uns genutzten IRC-Netzwerken bereits solche Kontrollstrukturen existieren, ist er überflüssig. Einziger Nutzen: Die TCL-Anbindung. Damit funktionieren die ganzen Scripts, den Bot erst zum BlauenDaemon machen.

Da aber auch TCL eine **** Sprache ist und ihrer ausdruckweise beschränkt, ist es für die weitere Entwicklung besser eine modernere Sprache zu nutzen.

Warum Java? Da ich nunmal gerne in Java programmiere und weil es schon ein Framework gibt, was das IRC Protokoll implementiert auf dem man dann aufsetzen würde.

Featureübersicht

  • Anbindung an mehrere IRC-Netze zeitgleich
  • Eventframework zum Scripten
  • Plug'n'Play für Plugins, zur Laufzeit ein- bzw. ausbinden
  • Administration über Webinterface oder GUI (spezieller Admin-Port am Bot)
  • Portierung der jetzigen Funktionen soweit sinnvoll

verwendete Software

Ich werde den JBot verwenden. Das ist eine auf den PircBot aufsetzende Implementierung mit vielen schönen Features. Aber perfekt ist der nicht.

Was kann er:

  • mehrere Server und Räume gleichzeitig
  • Plugin-Struktur zum einbinden von Plugins
  • Event-Struktur. Alles wird in Events verpackt, auch die man sich registern kann.

Was kann er nicht:

  • dynamische Matcher mit regulären Ausdrücken, bis jetzt nur statisch auf Wörter
  • auf _alle_ Events reagieren, bzw. diese weiterzugeben
  • deutsch reden
  • keine Bugs haben (aktuell isses nich so prall)
  • ordentlich loggen
  • und die Klassenstruktur gefällt mir überhaupt nicht
  • Admininterface (eq. telnet beim alten)

Dazu fehlen halt noch ne Menge Plugins vom alten, um die sich mal jemand kümmern müsste

Feature Requests

Hier können Wünsche und Anregungen für neue Funktionen geäußert werden.

  • Quiz (welches nicht ständig Fehler bei der Statistik macht)
  • Vote-Maschine zum starten eigener Abstimmungen (kick, ban, halfop, aussehen, beliebtheit...)
  • Script, welches einen einzelnen Buchstaben ausspuckt (falls man sich mal wieder nicht für 'nen Film oder Musik entscheiden kann)
  • Mensaplan immer um 11:30 posten
  • Nicktracking anhand der cloked-hostnames (z.B. IRC-Mania.de-31DF1F03.fem.tu-ilmenau.de ist Omega)

Fortschritt

07.08.06

Das Eventsystem steht soweit.

Und die Schnittstelle zur PircBot-API ist bis auf Ausnahmen auch fast vollständig.

Den ersten Test im IRC hat er bestanden. Leider ist noch viel davon festverdrahtet. So fehlen noch das Plugin-System und der Konfigurationsdateienkram. Ersteres wird wohl das nächste sein, was ich baue. Dazu werde ich das Eventsystem nochmal anpassen müssen.

Mir schwebt außerdem noch eine Datenbankanbindung via JDBC vor. (Als DB PostgreSQL oder MySQL) Da werden dann alle User, Channel und Events gespeichert. Darüber lassen sich dann die tollsten Stats generieren, Einstellungen automatisch personalisieren (z.B. Einstellen des eigenen Begrüßungsspruch), User anhand der Hostmask wiedererkennen und vieles mehr.

Über das Steuerinterface hab ich mir noch keine Gedanken gemacht. Telnet zu implementieren ist dann wohl doch etwas sinnlos. Teilweise Steuerung wird sicher per PrivMsg nach Login gehen. Naja, mal sehen, wieviel Lust ich dazu habe.