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

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