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

PYTHON:
  1. import sys
  2. import socket
  3. import string
  4. import time
  5. import re #wyrazenia regularne! ;)
  6.  
  7. #ustawienia :)
  8. class MyIrcConfig:
  9.      server = ‘ircnet.pl
  10.      port = 6667
  11.      nick = ‘tete‘
  12.      ident = ‘MyIrc‘
  13.      realname = ‘bot‘
  14.      channel = ‘splatch‘
  15.  
  16.  #klasa do wyswietlania tekstow #TODO: mozliwosc blokowania komunikatow (tryb cichy)
  17.  
  18. class Output:
  19.      def __init__(self):
  20.          self.printer(Test wyjscia . . .‘)
  21.  
  22.      def printer(self,x):
  23.          print x #klasa do komunikacji bot<>irc
  24.  
  25. class MyIrc(MyIrcConfig):
  26.      socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  27.      output = Output()
  28.  
  29.      def connect(self):
  30.          #probuj sie polaczyc
  31.          try:
  32.              self.socket.connect((self.server, self.port))
  33.          except:
  34.              self.output.printer( ‘Nie moge sie polaczyc z serweremn‘ )
  35.  
  36.          #powiedz serwerowi kim jestes
  37.          self.socket.send(’NICK %srn‘ % self.nick)
  38.          self.socket.send(USER %s %s bla: %srn‘ % (self.ident, self.server, self.realname))
  39.          self.output.printer(’Connected to irc servern‘)
  40.          self.output.printer(user "%s" (%s@%s * %s)‘ % (self.nick, self.ident, self.server, self.realname))
  41.  
  42.  
  43.      #odczyt serwera
  44.      def read(self):
  45.          data = self.socket.recv(1024)
  46.          self.output.printer(data)
  47.          return data
  48.  
  49.      #wejdz na kanal
  50.      def join(self):
  51.          self.socket.send(’JOIN #%srn ‘ % self.channel )
  52.  
  53.      #wykonaj
  54.      def write(self,msg):
  55.          self.output.printer(msg)
  56.          self.socket.send(msg) #klasa zasadnicza
  57.  
  58. class PyAeewe:
  59.      MyIrc = MyIrc()
  60.  
  61.      def start(self):
  62.          self.MyIrc.connect()
  63.          while 1:
  64.              data = self.MyIrc.read()
  65.              #tutaj odbieranie MOTD itp
  66.              #jesli wszystko ok
  67.              break;
  68.  
  69.          self.MyIrc.join() #wskocz na kanal
  70.  
  71.          while 1:
  72.              data = self.MyIrc.read()
  73.              #daj mozliwosc wykonywania komend             
  74.  
  75.          try:
  76.                  #data = raw_input(’Komenda: ‘)
  77.                  #self.MyIrc.write(data)
  78.                  self.MyIrc.output.printer(data)
  79.          except:
  80.                  self.MyIrc.output.printer(’Blad‘)
  81.  
  82. aeewe = PyAeewe()
  83. 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