Wie man einen IRC-Bot von Grund auf in Python

December 24

IRC ist ein Text-Chat-Programm zuerst 1988 entwickelt. Während Computertechnologie IRC durch lange vergangen ist, gibt es zahlreiche IRC-Server mit Hunderten von Benutzern über Themen diskutieren und Austausch von Informationen. Eine Möglichkeit, die Benutzer zu IRC verbinden ist durch "Bots", die Lesen von Text aus einem IRC-Channel und Aufgaben basierend auf was es liest. Ein Bot kann reagieren auf bestimmte Nachrichten, die bestimmte Schlüsselwörter enthalten, oder es kann einfach still zu sitzen und die Gespräche in die Datei zu speichern. Eine Möglichkeit zum Erstellen eines IRC-Bot ist durch die Python Programmiersprache, mit seiner "Socket" Bibliothek für Internet-Kommunikation.

Anweisungen

1 Die Socketbibliothek importieren und Variablen Verbindung eingerichtet. Vorausgesetzt, dass Sie bereits über IRC-Anmeldeinformationen für den Bot vorgezogen, wird der Python-IRC-Bot diese Anmeldeinformationen verwenden, sich mit der Bibliothek "Sockets" anmelden. Das folgende Beispiel zeigt, wie Layout, Variablen für anmelden Anmeldeinformationen, einschließlich der Werte für die IRC-Server, Anschluss und Bot Benutzerinformationen verwenden:

! / Usr/bin/Python Import-Sockel

Import-Zeichenfolge

Host = 'example.host.org'

Port = 6667

Nick = 'pythonbot3000'

Ident = 'PyBot'

"RealName" = 'Bobby'

Lesen = ' '

2 Verwenden Sie die "Sockel", um mit dem Server verbinden. Vorausgesetzt der Server "example.host.org", ein Socket-Objekt verwenden Sie, um die Verbindung herzustellen. Erstellen Sie in diesem Beispiel das Socketobjekt, "Irc_sock," und verwenden Sie, um mit dem Server verbinden und Protokoll in Informationen senden:

Irc_sock = socket.socket()

irc_sock.Connect (Host, Port)

irc_sock.Send ('NICK' + Nick + '\r\n')

irc_sock.Send ('USER' + Ident + ' ' + Host + ' Bla: "+" RealName "+ ' n ')

3 An einen Kanal anschließen und Text zu lesen. Wenn Sie Bot Join Channel "Beispiel" haben möchten, verwenden Sie "Find"-Methode eine Zeichenfolge aus dem IRC-Server gesammelt, um den Status der Verbindung überprüfen. Beitreten Sie einen Channel und beginnen Sie Nachrichten lesen und Drucken zu, wie im folgenden Code dargestellt:

zwar 1: //infinite-Schleife, um Text zu sammeln, zu halten

Lesen = irc_sock.recv(500) //gets Textzeile

Drucken lesen //prints es

Wenn read.find ('Generic Intro Nachricht')! =-1: //if Intro Servermeldung, Join pro Kanal

irc_sock.Send ('JOIN' Beispiel + '\r\n')