IRC Python Bot: Best Way

Noah Clark picture Noah Clark · Jul 9, 2009 · Viewed 26.3k times · Source

I want to build a bot that basically does the following:

  1. Listens to the room and interacts with users and encourages them to PM the bot.
  2. Once a user has PMed the bot engage with the client using various AI techniques.

Should I just use the IRC library or Sockets in python or do I need more of a bot framework.

What would you do?

Thanks!

Here is the code I'm currently using, however, I haven't gotten it to work.

#!/usr/bin/python 
import socket
network = 'holmes.freenet.net'
port = 6667
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( network, port ) )
irc.send ( 'NICK PyIRC\r\n' )
irc.send ( 'USER PyIRC PyIRC PyIRC :Python IRC\r\n' )
irc.send ( 'JOIN #pyirc\r\n' )
irc.send ( 'PRIVMSG #pyirc :Can you hear me?\r\n' )
irc.send ( 'PART #pyirc\r\n' )
irc.send ( 'QUIT\r\n' )
irc.close()

Answer

Unknown picture Unknown · Jul 9, 2009

Use Twisted or Asynchat if you want to have a sane design. It is possible to just do it with sockets but why bother doing it from scratch?