Apr 08 2005
Pythonowe potyczki
Filed under Inne by Łukasz Dywicki
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()
Poprawiłbyś Splatchu kod, bo się zlewa w jedną linię w FF.
Zrobione!