Come fare un IRC Bot da zero in Python

June 28

IRC è un programma di chat di testo prima sviluppato nel 1988. Mentre la tecnologia informatica ha da tempo superato IRC da numerosi server IRC esistono con centinaia di utenti a discutere gli argomenti e la condivisione delle informazioni. Un modo che gli utenti si connettono a IRC è in via di "bot" che leggono il testo da un canale IRC ed eseguire le attività in base a ciò che legge. Un bot in grado di rispondere a certi messaggi contenenti determinate parole chiave, oppure può semplicemente sedersi in silenzio e memorizzare le conversazioni in un file. Un modo per creare un bot IRC è attraverso il linguaggio di programmazione Python, utilizzando la sua biblioteca "presa" per la comunicazione via Internet.

istruzione

1 Importare la libreria presa e impostare le variabili di connessione. Supponendo che hai già preferito credenziali IRC per il bot, l'IRC bot Python utilizzerà tali credenziali per accedere utilizzando la libreria "prese". L'esempio seguente mostra come disporre le variabili da utilizzare per credenziali di accesso, compresi i valori per il server IRC, porta di connessione e informazioni utente Bot:

! / Usr / bin / python

presa di importazione

import string

host = 'example.host.org'

port = 6667

nick = 'pythonbot3000'

ident = 'PyBot'

realname = 'Bobby'

Leggere = ''

2 Utilizzare "presa" per connettersi al server. Supponendo che il server è "example.host.org," utilizzare un oggetto socket per stabilire la connessione. In questo esempio, creare l'oggetto socket, "irc_sock," e usarlo per connettersi al server e inviare dati di accesso:

irc_sock = socket.socket ()

irc_sock.connect (host, port)

irc_sock.send ( 'Nick' + nick + '\ r \ n')

irc_sock.send ( 'user' + ident + '' + ospite + 'bla:' + realname + 'n')

3 Connettersi a un canale e leggere il testo. Se si desidera avere il bot unirsi canale "Esempio", quindi utilizzare il metodo di "trovare" di una stringa raccolte dal server IRC per verificare lo stato di connessione. Partecipa a un canale ed iniziare messaggi di lettura e di stampa, come illustrato nel codice seguente:

mentre 1: // loop infinito per mantenere la raccolta di testo

leggere = irc_sock.recv (500) // prende riga di testo

stampa legga // lo stampa

se read.find ( 'generico Intro Messaggio') = -1: // se il messaggio di server intro, unirsi a un canale

irc_sock.send ( 'ENTRA' + + esempio '\ r \ n')