Login
Newsletter
Werbung

Mo, 31. Juli 2000, 00:00

EggDrop - Ein IRC-Bot

Vorwort

Sicher haben einige von Ihnen schon im Pro-Linux-Chat (irc.de.quakenet.eu.org #pro-linux.de) einen Typen bemerkt, der sich Ixobist nennt, ab und zu mal Unsinn redet, Leute oppt oder welche kickt (sei es wegen Flooden oder anderem). Außerdem schützt ein IRC-Bot den Channel davor, daß ein Fremder den OP-Status bekommt. Solche Bots finden sich in fast jedem IRC-Channel, nicht nur im Pro-Linux-Chat. In diesem Artikel werde ich die Installation, Konfiguration und Bedienung eines solchen Bots (EggDrop) beschreiben.

Herunterladen des EggDrop Bots

In diesem Artikel werde ich die "unstabile" Version 1.5.3 des EggDrop Bots benutzen. Diese ist nicht wesentlich unstabiler als die 1.4er-Versionen. Sie können diese Version von ftp.eggheads.org bekommen. Kopieren Sie dann das Archiv in irgendein Verzeichnis und entpacken Sie es mit

tar xvzf eggdrop1.5.3.tar.gz

Dabei entsteht ein neues Verzeichnis mit dem Namen eggdrop1.5.3. Wechseln Sie in das Verzeichnis.

Installieren des EggDrop Bots

Nun folgt die (fast) übliche GNU-Form des Compilierens eines Programms... lassen Sie zuerst prüfen, ob Sie alle benötigten Libraries installiert haben. Dies geschieht mit ./configure. Dieses Programm stellt zum Beispiel fest, daß Sie keine Tcl-Headerfiles auf dem System installiert haben (wie bei mir eben). Die fehlenden Pakete müssen Sie dementsprechend nachinstallieren, und dann configure erneut ausführen. Danach müssen Sie ein make config machen, damit der Bot weiß, welche Module er compilieren soll. Danach kann der Compilierungsvorgang mit make eingeleitet werden. Das kann ein paar Minuten dauern, oder auf sehr langsamen Rechnern auch eine halbe Stunde. Danach können Sie EggDrop nach ~/eggdrop/ mit folgendem Befehl installieren: make install. Danach können Sie sich eine Konfigurationsdatei bauen.

Erstellen einer Konfigurationsdatei

Zuerst müssen Sie in das Verzeichnis wechseln, wo EggDrop installiert ist. Dort können Sie mit einem Editor Ihrer Wahl eine Datei erstellen. Diese sollte den Namen bekommen, die der Bot später haben soll, um sich später besser zurechtzufinden. Im weiteren Verlauf werde ich als Beispiel immer wieder den Pro-Linux-Bot Ixobist benutzen. Verlassen Sie den Editor wieder und machen Sie die Datei ausführbar. Dies geschieht normalerweise mit chmod a+x Ixobist.

Jetzt können Sie die Datei weiter editieren. Da dies eine ausführbare Datei ist und wir garantiert kein Binary per Hand tippen wollen, brauchen wir in der ersten Zeile den Ort des Interpreters der Datei. Dazu schreiben Sie in die erste Zeile der Datei (bitte Ihren Pfad zum EggDrop benutzen): #!/home/rvb/eggdrop/eggdrop. Danach sollten Sie unbedingt folgende Zeilen in die Konfigurationsdatei schreiben:

set mod-path "modules/"
loadmodule dns
loadmodule channels
loadmodule server
loadmodule ctcp
loadmodule irc
loadmodule notes
loadmodule console
checkmodule blowfish

Danach sind Ihnen alle Konfigurations-Optionen offen. Zuerst braucht unser Bot natürlich einen Namen. Den Nicknamen des Bots setzen Sie mit set nick "Ixobist". Und da ich nicht will, daß später nur noch Ixobisten durch das IRC hetzen, benutzen Sie bitte anstatt Ixobist einen eigenen Namen. Falls der von Ihnen gewählte Nickname im IRC schon belegt sein sollte, können Sie mit set altnick "|Ixobist|" einen alternativen Nicknamen für den Bot vergeben. Da es für jeden IRC-Benutzer auch ein Real-Name-Attribut gibt, und unser Bot auch ein IRC-Benutzer ist, soll er natürlich nicht ohne einen Realnamen bestehen. Einen Realnamen können Sie dem Bot mit set realname "Ixobist Dechellan" vergeben.

Nun zu etwas sehr Wichtigem, da der Bot ja wohl einen Server braucht, um irgendwo einen Channel zu bewachen. Dem Bot kann eine ganze Server-Liste gegeben werden. Er fängt beim ersten Server an und versucht alle anderen durch. Wenn jeder Connect fehlschlägt, dann fängt der Bot wieder beim ersten Server an, bis er schließlich mit einem verbunden ist. So wird dem Bot eine Server-Liste gegeben:

set servers {
 irc.de.quakenet.eu.org
 irc.uk.quakenet.eu.org
 irc.fi.quakenet.eu.org
}

Und nun muss dem Bot noch gesagt werden, in welchen Channel er soll. Dazu benutzt man Einträge in der Konfigurationsdatei, die ähnlich wie die Server-Liste aussehen. In den geschweiften Klammern werden Optionen für den Channel festgelegt und allgemeine IRC-Channel-Attribute automatisch gesetzt. Mit den IRC-Channel-Attributen sollten Sie vertraut sein, wenn nicht, lesen Sie unseren Artikel über IRC. Ein Eintrag kann folgendermaßen aussehen:

channel add #pro-linux.de {
 chanmode "+nt-ikm"
 idle-kick 0
 need-op { putserv "PRIVMSG #pro-linux.de :Op her!" }
 need-invite { putserv "PRIVMSG #pro-linux.de :Lasst mich rein!" }
 need-key { putserv "PRIVMSG #pro-linux.de :Ich weiß das Passwort nich!" }
 need-unban { putserv "PRIVMSG #pro-linux.de :Nehmt den Ban weg oder ich räch'
mich!. WUAHAHAHA!" }
 need-limit { putserv "PRIVMSG #pro-linux.de :Setzt das Limit höher ich muss
auch noch rein!" }
}

Damit wird dem Bot gesagt, er soll in den Channel #pro-linux.de gehen und die Attribute des Channels auf +nt-ikm setzen. Der Idle Kick ist in diesem Fall aus. Hier kann eingetragen werden, nach wieviel Minuten Idle-Zeit ein User gekickt werden soll. Der Rest erklärt sich selber, denke ich. Nun können den einzelnen Channels noch IRC-unspezifische Optionen zugeteilt werden. Diese werden mit channel set #channel [+|-]option aktiviert oder deaktiviert. Dabei gibt uns der Bot folgende Optionen zur Verfügung:

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung