One of the things in which I never reached a decent level of knowledge is IRC. I mean I know the basic stuff in order to connect to servers, join channels, send/receive files etc. What I know nothing of is actually IRC server or channel administration… I am not going to learn or write more about it now.
What I need at the moment is an automatic IRC client, a bot. I want it to be able to connect to the specified server and channel and stay there without sending any messages, but keep logs of all the conversation at that channel, so I do not miss anything… I need a bot with a CLI interface, so I can set it to run from my always-on machine’s terminal, no GUIs and no unnecessary resource consumption. In other words I need the bot to be able to:
- connect to a server and try to reconnect automatically if the connection is lost
- identify my nick to the server
- join the specified channel and keep a log of the conversation
- play the request-response (ping-pong) game with the server so to be able to stay online as long as I want
- be extremely reliable.
Well, this is not a hell of features! I guess a bot with these capabilities would be very easy to implement in Python, but no time for this kind of stuff… A google search returned some interesting results about such bots. I think I’ll stick to clients written in Python only because this is the language I know well enough, so, in case I need to modify anything, it will be rather easy.
So, here is supybot, phenny, pynfo and pyfibot. All seem to cover my needs, but I think I’ll stick to the supybot. Its website seemed more organised and I have the feeling that I will find any kind of help easily, if I need it.
Apart from these ready-made clients, here are a few articles where the authors document the creation of such a bot with very primitive functionality: IRC bot in python from scratch and a simple IRC bot written in python (note: pages are down).
PS: so where am I supposed to test these bots? Freenode or should I quickly set up a local IRC server?
Python IRC Bot by George Notaras is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Copyright © 2007 - Some Rights Reserved