#!/usr/bin/python import socket, string, re #--- Params de Connex :--- Nick = "R0xy" Nick2 = "Crafouine" Nick3 = "Chi-Chi" UserName = "R0xy" RealName = "Chichiteuz" NDChan = "#bot" Server = "irc.worldnet.net" Port = 6667 #Pswd = Mwa = "Enila" #--- Creation de la socket + connexion au serv :--- Sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) Sock.connect((Server, Port)) Sock.send( "NICK " + Nick + "\n" ) Sock.send( "USER " + Nick2 + " " + Nick3 + " " + UserName + " " + RealName + "\n" ) Sock.send( "JOIN " + NDChan + "\n" ) Sock.send( "PRIVMSG " + NDChan + " :Pwait !" + "\n" ) #Sock.send( "NICKSERV : IDENTIFY " + Pswd + "\n" ) #--- Regex necessaires :--- PingRegex = re.compile('^PING :(.*)$', re.IGNORECASE) InfosReg = re.compile('^:(.+)!~?(.+)@([a-zA-Z0-9\-\.]+) (\w+) (#?[^ ]*) :(.*)\r\n') ModeReg = re.compile('^:(.+)!~?(.+)@([a-zA-Z0-9\-\.]+) (\w+) (#?[^ ]*) (.*) (.+)\r\n', re.IGNORECASE) RoxyReg = re.compile('R0xy') RoxyReg2 = re.compile('(.*) R0xy', re.IGNORECASE) ChoixHoroReg = re.compile('^.Horo (.+)$') HoroscopeReg = re.compile('(\w)
\r\n\t\t\t(.+)

') #--- Boucle Principale :--- while 1: Buffer = Sock.recv(512) print Buffer PingOuPas = PingRegex.match(Buffer) Infos = InfosReg.match(Buffer) Mode = ModeReg.match(Buffer) if PingOuPas is not None : Sock.send("PONG :" + PingOuPas.group(1) + "\n") print "Un PING a ete recu !" elif Infos is not None : NickName = Infos.group(1) NickUser = Infos.group(2) Host = Infos.group(3) Commande = Infos.group(4) Aki = Infos.group(5) Kwa = Infos.group(6) Roxy = RoxyReg.match(Kwa) Roxy2 = RoxyReg2.match(Kwa) ChoixHoro = ChoixHoroReg.match(Kwa) if NickName == Mwa and Kwa == ".Quit" : Sock.send( "QUIT :RoX-y\n" ) Sock.close() sys.close(0) if Roxy is not None : Sock.send( "PRIVMSG " + NDChan + " :.\n" ) if Roxy2 is not None : Hu = Roxy2.group(1) if Hu == "Lu" : Sock.send( "PRIVMSG " + NDChan + " :Coucou " + NickName + "\n") if Hu != "Lu": Sock.send( "PRIVMSG " + NDChan + " :Hu ?\n" ) if ChoixHoro is not None : Signe = ChoixHoro.group(1) Sock.send( "PRIVMSG " + NDChan + " :Vous avez demande l'horoscope quotidien pour le signe du :" + Signe + "\n" ) #--- Creation de la deuxieme socket :--- Sock2 = socket.socket(socket.AF_INET,socket.SOCK_STREAM) Sock2.connect(('astro-free.com', 80)) #Se connecte Sock2.send ("GET /horo/jour/journalier.php HTTP/1.1\r\nHost: astro-free.com\r\nConnection: close\r\n\r\n") #Requete PageWeb = Sock2.read(8192) #Recup les donnees demandees Sock2.close() #---- print PageWeb HoroNeeded = HoroscopeReg.match(PageWeb) if HoroNeeded is not None : Zodiac = HoroNeeded.group(1) Horo = HoroNeeded.group(2) if Zodiac == Signe: Sock.send( "PRIVMSG " + NDChan + " " + Horo + "\n" ) elif Mode is not None : Ki = Mode.group(1) Cmd = Mode.group(4) Ou = Mode.group(5) Quoi = Mode.group(6) Qui = Mode.group(7) if Cmd == "MODE" and Ou == NDChan and Quoi == "+v" or "+o" and Qui == Nick or Nick2 or Nick3 : Sock.send( "PRIVMSG " + NDChan + " :Huw, thx :)\n" )