Oppure

Loading
19/08/06 7:50
Ant0
ciao! per cominciare a programmare in python ho deciso di scrivere un bot IRC.
Per adesso ho scritto solo il codice di connessione...
import socket
"""Dati connessione"""
server = "84.19.188.132"
port = 6667
user = "ro-bot"
nick = "ro-bot"
channel = "#testing"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Crea il socket

"""Si connette al server e invia i dati: user, nickname e channel"""
s.connect((server, port))

s.send("USER user\r\n")
s.send("NICK nick\r\n")
s.send("JOIN channel\r\n")

print "[+]Connesso.\n"

risposta_server = s.recv(4096)
print risposta_server

Il problema è che questo script non mi printa a schermo tutta la risposta del server ma solo le prime due righe:

rehash.explosionirc.org- *** Looking up your hostname...
rehash.explosionirc.org- *** Checking ident...

e poi si chiude.
Come faccio per fargli ottenete tutta la risposta e non solo le 2 prime righe?
Io avevo pensato se c'era qualche funzione che permetteva come in php tipo set_time_limit(0) che non faceva chiudere il prog qualunque sia il tempo richiesto dall'operazione.
Ho provato anche con un ciclo while ma nn funzia...
Come posso rimediare?

ciao ciao:k:
aaa
19/08/06 17:07
pierotofy
Prova con:

while (risposta_server = s.recv(4096)):
	print risposta_server
Ultima modifica effettuata da pierotofy 19/08/06 17:09
Il mio blog: piero.dev
23/03/08 17:24
vito_
ehm...a me non mi funzia nemmeno dopo la correzione,
mi interessava un bot in python. fore ho corretto male, potete postare tutto il sorgente corretto per piacere ?

EDIT:ho risolto, ma il codice è abbastanza sbagliato. manca anche la risposta al ping. mi dite come posso aggiungerla?
Ultima modifica effettuata da vito_ 25/03/08 22:08
aaa
09/04/08 16:20
balloto
Allora dovrebbe essere così per il PING (ho scritto un bel bot in python...codice un pò sporco ma funge!)

A te arriva questo comando dal server:

PING radiomarte.azzurra.org

Tu devi rispondere con:

PONG radiomarte.azzurra.org

Allora puoi fare così:

risposta_server_s = risposta_server.split("")
if risposta_server_s[0].upper() == "PING":
    s.send("PONG " + str(risposta_server_s[1])


Io facendo così (il concetto base è quello il mio codice è molto più incasinato XD) il bot rimane connesso e risponde ai ping...ciao!
aaa
25/04/08 20:30
vito_
non funziona il tuo codice (apparte che aveva un bug: alla fine mancava una parentesi) e anche dopo aver corretto il bug non funzionava lo stesso.
se volete comunque il codice intero del bot che funzioni (senza risposta al ping ancora :°D) io ce l'ho
aaa