import socket
import cPickle
import sys
import os
import re
class IRCBot:
def __init__(self, ircserver, ircchannel, botname, botpass):
self.diction = {}
self.server = ircserver
self.channel = ircchannel
self.nick = botname
self.password = botpass
def run(self):
self.sock=socket.socket()
self.sock.connect((self.server, 6667))
self.sock.send('NICK %s \r\n' % self.nick)
self.sock.send('USER %s %s bla : %s \r\n' % (self.nick, self.server, self.nick))
self.sock.send('JOIN %s \r\n' % self.channel)
self.sock.send('PRIVMSG NickServ : IDENTIFY %s\r\n' % self.password)
self.sock.send('PRIVMSG %s : Witam obecnych na kanale. \r\n' % self.channel)
self.receive()
def receive(self):
privmsg = r'^:(.*?)!(.*?) PRIVMSG (#.*?) :(.*)$'
privmsgpat = re.compile(privmsg)
mode = r'^:(.*?)!(.*?) MODE (#.*?) :(.*)$'
modepat = re.compile(mode)
plik = file('cos.txt', 'a')
while True:
data = self.sock.recv(4096)
if privmsgpat.search(data):
privmsgdata = privmsgpat.search(data).groups()
plik.write("<%s> %s" % (privmsgdata[0], privmsgdata[2]))
elif modepat.search(data):
modedata = modepat.search(data).groups()
plik.write("%s ustawia: %s" % (modedata[0], modedata[2]))
else:
plik.write("nie wiem co napisano\n")obojętne, co zostanie wpisane na kanale IRC, bot i tak zapisuje do pliku cos.txt linijki "nie wiem co napisano". ma ktoś jakiś pomysł, co można z tym zrobić?

Logowanie
Rejestracja
Pomoc
Dodaj odpowiedź



Cytuj