W dalszej części posta kod bota napisanego przeze mnie w pythonie (wspomagałem się kodem beli).
import sys
import socket
import string
import time
import re #wyrazenia regularne! ;)
#ustawienia :)
class MyIrcConfig:
server = ‘ircnet.pl‘
port = 6667
nick = ‘tete‘
ident = ‘MyIrc‘
realname = ‘bot‘
channel = ‘splatch‘
#klasa do wyswietlania tekstow #TODO: mozliwosc blokowania komunikatow (tryb cichy)
class Output:
def __init__(self):
self.printer(’Test wyjscia . . .‘)
def printer(self,x):
print x #klasa do komunikacji bot<>irc
class MyIrc(MyIrcConfig):
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
output = Output()
def connect(self):
#probuj sie polaczyc
try:
self.socket.connect((self.server, self.port))
except:
self.output.printer( ‘Nie moge sie polaczyc z serweremn‘ )
#powiedz serwerowi kim jestes
self.socket.send(’NICK %srn‘ % self.nick)
self.socket.send(’USER %s %s bla: %srn‘ % (self.ident, self.server, self.realname))
self.output.printer(’Connected to irc servern‘)
self.output.printer(’user "%s" (%s@%s * %s)‘ % (self.nick, self.ident, self.server, self.realname))
#odczyt serwera
def read(self):
data = self.socket.recv(1024)
self.output.printer(data)
return data
#wejdz na kanal
def join(self):
self.socket.send(’JOIN #%srn ‘ % self.channel )
#wykonaj
def write(self,msg):
self.output.printer(msg)
self.socket.send(msg) #klasa zasadnicza
class PyAeewe:
MyIrc = MyIrc()
def start(self):
self.MyIrc.connect()
while 1:
data = self.MyIrc.read()
#tutaj odbieranie MOTD itp
#jesli wszystko ok
break;
self.MyIrc.join() #wskocz na kanal
while 1:
data = self.MyIrc.read()
#daj mozliwosc wykonywania komend
try:
#data = raw_input(’Komenda: ‘)
#self.MyIrc.write(data)
self.MyIrc.output.printer(data)
except:
self.MyIrc.output.printer(’Blad‘)
aeewe = PyAeewe()
aeewe.start()