# -*- coding: ISO-8859-1 -*- import pygtk pygtk.require('2.0') import gtk import sys #commencement de la socket class sockbot: import sys import socket import string SERV="irc.project-x.fr" PORT=6667 NICK="Python_Bot" IDENT="Python_Bot" REALNAME="Bot En Python" readbuffer="" sock=socket.socket( ) def callback(self, widget, data): if data == "Connexion": sock.connect((SERV, PORT)) sock.send("NICK %s\r\n" % NICK) sock.send("USER %s %s bla :%s\r\n" % (IDENT, SERV, REALNAME)) while 1: readbuffer=readbuffer+sock.recv(1024) temp=string.split(readbuffer, "\n") readbuffer=temp.pop( ) for line in temp: line=string.rstrip(line) line=string.split(line) print line if (line[0]=="PING"): sock.send("PONG %s\r\n" % line[1]) #commencement de l'interface class sockbotface: def callback(self, widget, data): if data == "send": tbuffer = self.textv.get_buffer() first_iter = tbuffer.get_start_iter() last_iter = tbuffer.get_end_iter() if (self.edit.get_text() <> ""): text = open("test.txt","a") ecrire = self.edit.get_text() text.write(ecrire+"\n") text.close text = open("test.txt","r") lignes = text.read() tbuffer.set_text(lignes) text.close() def __init__(self): print sys.getdefaultencoding() #Creation de la fenetre self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL) self.fenetre.set_title("SockBot By Street") self.fenetre.set_resizable(False) self.fenetre.set_size_request(500,450) #Creation des boutons #Creation du textview self.scroll = gtk.ScrolledWindow() self.scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) self.textv = gtk.TextView() self.textv.set_editable(False) self.textv.set_wrap_mode(gtk.WRAP_CHAR) self.scroll.set_size_request(490,380) tbuffer = self.textv.get_buffer() text = open("test.txt", "r") if text: lignes = text.read() text.close() tbuffer.set_text(lignes) #Creation de l'edit et du bouton envoyer self.edit = gtk.Entry() self.edit.set_size_request(450,22) self.bouton = gtk.Button("Envoi") self.bouton.set_size_request(42,22) #conteneur et affichage des widgets self.conteneur = gtk.Fixed() self.fenetre.add(self.conteneur) self.scroll.add(self.textv) self.conteneur.put(self.scroll,5,40) self.conteneur.put(self.edit,4,426) self.conteneur.put(self.bouton,454,426) self.fenetre.show_all() #Actions self.bouton.connect("clicked", self.callback, "send") def boucle(self): gtk.main() if __name__ == "__main__": base = sockbotface() base.boucle()