class Irc(object):
def __init__(self):
self.txq = Queue.Queue()
self.rxq = Queue.Queue()
self.irc = irclib.IRC()
self.server = self.irc.server()
self.irc.add_global_handler('pubmsg', self.handlePubMessage)
self.connect()
def connect(self):
self.server.connect(**server_info)
self.server.join(**channel_info)
def tick(self):
# batch send all txq messages
self.irc.process_once()
def handlePubMessage(self, connection, event):
self.rxq.put_nowait(event.something())
def get(self):
return self.rxq.get_nowait()
def send(self, message):
self.txq.put_nowait(message)