All pastes #46956 Raw Edit

Unnamed

public python v1 · immutable
#46956 ·published 2006-03-25 19:49 UTC
rendered paste body
#!/usr/bin/env pythonfrom socket import *class Ircconnection:  '''A basic irc connection that handles the stream and keeps the IRC    connection alive.'''  def __init__(self, server, port, channel, nick, user):    self.server  = server    self.port    = port    self.channel = channel    self.nick    = nick    self.user    = user    self.socket  = socket(AF_INET, SOCK_STREAM)    self.connect()    self.login()    self.receive()  def connect(self):    '''Open the connection to the server.'''    try:      self.socket.connect((self.server, self.port))    except error:      self.msg_in('err', error)      return false  def close(self):    '''Close the connection with the server.'''    try:      self.socket.close()    except error:      self.msg_in('err', error)      return false  def login(self):    '''Log in to the server.'''    self.msg_out('NICK '+self.nick)    self.msg_out('USER '+self.user+' 0 * :'+self.user)  def send(self, msg):    '''Send data in lines to the socket/server.'''    self.socket.send(msg)  def receive(self):    '''Receive data in chunks and pass it to be interpreted'''    partial = ''    cmd = ''    while 1:      buf = self.socket.recv(1024).split('\r\n')      if partial:        buf[0] = partial+buf[0]      if len(buf) > 1:        partial = buf[-1]        for a in buf[:-1]:          self.msg_in('msg', a)      else:        self.msg_in('msg', buf)  def msg_in(self, (type, msg)):    '''Handle incoming msgs from this client or the server'''    return (type, msg)  def msg_out(self, msg):    '''Handle outgoing messages to the server'''    self.send(msg+'\r\n')class Ircbot:  '''An IRC bot class that is able to sit in multiple channels (and maybe later  connect to multiple servers).'''  def __init__(self):    self.servers = {}    pass  def addServer(self, name):    if not self.servers[name]:      self.servers[name] = {}    else:      self.servers[name]  def addChannel():    pass