Some of posts from this blog has been moved to dywicki.pl. You will be automatically redirected to new blog if you would submit comment.
New posts are published on dywicki.pl, this blog contains old content and it is not continued.

Niektóre posty z tego bloga zostały przeniesione do dywicki.pl. Zostaniesz automatycznie przekierowany jeśli bedzięsz chciał dodać komentarz.
Nowe posty sa publikowane na dywicki.pl, ten blog zawiera stare treści i nie jest kontynuowany.

Pythonowe potyczki

Filed under Inne by

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()

2 responses so far

2 Responses to “Pythonowe potyczki”

  1. Zdanek says:

    Poprawiłbyś Splatchu kod, bo się zlewa w jedną linię w FF.

Leave a Reply