Thread obsoleto Creare un Bot per IRC

Neurologico

Utente Attivo
Autore del topic
29 Luglio 2010
271
0
Miglior risposta
0
Internet Relay Chat (IRC) è stata la prima forma di comunicazione istantanea (chat) su Internet. Consente sia la comunicazione diretta fra due utenti che il dialogo contemporaneo di interi gruppi di persone in stanze di discussione chiamate canali.

Un bot è semplicemente un programma che svolge determinate fuzioni al verificarsi di determinati eventi: come l'apparire di una frase o una parola.

Il bot apparirà nella chat come un utente normale, per poter accedere dovrà quindi effettuare la connessione. Vediamo come:

Inizializiamo i dati fondamentali per la connessione del Bot :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Fino ad ora è piuttosto semplice, ora vediamo come inizializzare il socket per far sì che lo script si connetta al Server IRC :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

PeerAddr è l'indirizzo a cui connetterci, PeerPort è la porta, Proto è il protocollo utilizzato e Timeout è il tempo limite prima della disconnessione automatica.
Prima di scrivere il codice per poter accedere a un channel, è meglio fare una subroutine in grado di far inviare messaggi più scorrevolmente di quanto si possa immaginare, vediamola
:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora, finalmente, vediamo come connetterci al chan e inviare messaggi :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

fin qui tutto bene: abbiamo joinato (ci siamo uniti) al canale fornendo tutte le informazioni inserite in precedenza, ma, se eseguite questo script noterete un gravissimo problema : il bot leggerà una sola frase, poi si disconnetterà.

La "cura" di questo problema è la risposta del nostro Bot, in pratica esso risponderà al Ping del canale, ottenuto mediante una regexp (regular expression), con un Pong, vediamo il codice :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

in pratica il nostro bot è funzionante, ma ha solo la funzione di leggere la conversazione senza poter intervenire nel discorso.

Fonte: Mia.