views:

87

answers:

2

Say you are telneting into IRC to figure out how it all works. As you issue commands the IRC server returns data telling you what it's doing. Once I have created a default script that basically is how a normal IRC connection between server and client occurs, if it ever deviates from that it won't tell me what is wrong. I need to be able to throw exceptions based on what the server returns to me. How do I do that in python?

A: 

Twisted is an event-driven networking engine written in Python, and includes support for IRC protocols. To access IRC functionality, import it:

from twisted.words.protocols import irc

See an example here: ircLogBot.py - connects to an IRC server and logs all messages. The example __doc__:

"""An example IRC log bot - logs a channel's events to a file.

If someone says the bot's name in the channel followed by a ':',
e.g.

  <foo> logbot: hello!

    the bot will reply:

  <logbot> foo: I am a log bot

Run this script with two arguments, the channel name the bot should
connect to, and file to log to, e.g.:

  $ python ircLogBot.py test test.log

will log channel #test to the file 'test.log'.
"""
gimel
+1  A: 

Here's a tutorial which pretty much walks you through an IRC client using sockets in Python:

ars
I've already looked at that and I'll revisit this evening. I'm trying to understand how to view the chat in an object oriented way. Thanks!
NoahClark
I see. Some other articles by that author (http://www.devshed.com/cp/bio/Peyton-McCullough/) go over using the Python-IRC library, which is an OO wrapper around IRC functionality (based on a quick read). Maybe looking at how they do it will help.
ars
Thank you, I'll check that out too.
NoahClark