I used to use eggdrops back in the day when we would idle in IRC channels for counterstrike and used to write custom TCL scripts to do all that annoying IRC bot stuff (like listing scrim availabilities, cs clan rosters, etc). So while I'm learning Python, I figured I'd try and write my own bot to see if I could do it. I first started off with this example that builds the core of the bot in less than 30 lines of code. While that was fantastic, I then came across this example which uses the Twisted lib and makes it much more robust. I didn't implement the markov chains, but I wrote up some quick code that can handle saving and displaying IRC quotes. This version of the bot is now just under 180 lines.
You can view the code here.
To use it, you have to change this section at the bottom of the file.
if __name__ == "__main__": reactor.connectTCP("YOUR_IRC_SERVER_HOST", IRC_SERVER_HOST_PORT, ShibalBotFactory("YOUR_IRC_CHANNEL", "YOUR_IRCBOT_NICK", True, False)) reactor.run()
Just change the parameters to your own IRC server address, server port, IRC channel, and bot nickname and you're good to go. Some Todo's include adding some code to fetch the titles of url's pasted in the channel, making it modular so you can just drop in scripts instead of having to change the main file, and updating the quotes module to not load the entire quotes file at once (in case the file becomes huge).