User Tools

Site Tools


haas:spring2010:unix_irc_bot

Quest #3: IRC bots for fun and profit

So far your quests have found you unraveling puzzles and unlocking secrets.

Now, as your experience has been growing by leaps and bounds, a new challenge awaits you…

Many have heard of the legendary Wezlbot that resides on our IRC server, and some have even ventured into its very presence.

The fascination with Wezlbot, an IRC bot, continues to this day. Aided with its Artificial “Intelligence”, entire conversations take place throughout the day and well into the night.

Your mission

Once again putting your skills to the test, your mission is to deploy IRC bots of your own, arming them with the capability of eventual conversation, gathering them on IRC, and adequately documenting all efforts on the wiki.

With that said, I'll say I do not expect most of you to presently have all the skills needed to pull this off; what you do have are all the ingredients you need:

  • knowledge of how to view manual pages
  • knowledge of how to navigate the UNIX filesystem
  • knowledge of UNIX commands to view, manipulate, and access files
  • the ability to read
  • the ability to search google
  • the ability to ask questions

I would also caution people against looking at the desired end point first and foremost… the end result is the result of an involved process. Those stuck looking at trying to achieve the end result may fear this is too challenging, or too difficult; but I tell you that is not the case.

… but I would also say it is highly recommended you do not wait until Friday to get started.

Requirements

To successfully complete this quest, I would like to see from each of you:

  1. an IRC bot deployed by you onto our IRC server, in channel #botchan
  2. it should NOT appear in #unix or any of the other class channels
  3. while testing it, you can have it appear in a segregated and empty channel of your choice
  4. have it possess some unique and non-offensive name
  5. some notable functionality (AI w/ MegaHAL module, weather reporting, quizzes, ASCII art, etc.)
  6. you to also be in #botchan and demonstrate interactivity with your bot
  7. an e-mail from you indicating neat functionality of your bot, and a link to your wiki documentation
  8. it needs to play nice with others in the channel… no infinite bot loops
  9. be a responsible influence on it, keep its vocabulary clean

Your bot must actually DO something aside from just reside in the room. And I should be able to evoke some action from it (that's where you're telling me how best to interact with it).

What's just as important as having a working bot is having your own documentation that you have written describing in painstaking detail and explanation how to set up, deploy, interact, and generally care for your bot.

As indicated, I want each person to have deployed their own bot, and have their own wiki documentation. You may help each other as you have been– via the mailing list or IRC… give helpful pointers (did you check the logs? what did the instructions say at that point? what site did you find that tutorial?), but I don't want you setting up someone else's bot.

This will not be an immediate or instantly gratifying process. If you do not read carefully, you may miss important details.

Additionally, even if you read the instructions precisely, something may not work (it usually doesn't end up working the first, second, or even third time)… this will give you the opportunity to further deploy your forensic skills in determining the causes to non-operation or deviations from desired operation (especially learning to appreciate the value of reading output, errors, and log files).

And, as I said, this puts together the various skills you've encountered in the class thus far. You may not know how to SPECIFICALLY accomplish this, but with some patience, effort, and learning how to ask good questions, you can muddle your way through to success.

Configuration Information

Some information you may find valuable to you in the configuration of your bot (you'll be doing this on Lab46):

  • Server name: irc.offbyone.lan
  • Port: 6667
  • Channel: #botchan (or some empty non-class channel of your own choosing, as you set it up)

Recommendations

As you will see, IRC bots are not some rare thing.. they've enjoyed a rich history through much of the age of the public internet (some of the oldest ones being started in 1993!)

Although there are likely several different solutions to this quest, following will be some recommendations you may want to consider:

  • eggdrop is likely among the most prolific of IRC bots; therefore, the potential for existing documentation is likely greater
  • to clarify: I am not intending for anyone to CREATE a bot from scratch (but also not ruling that out, to any who feel they are up to such a task); the intent is to utilize an existing IRC bot program (such as eggdrop), and to customize it to meet the requirements set above
  • building the bot from source in many cases is the preferred path to deployment
  • run it out of your home directory in some subdirectory
  • if you're after the AI functionality, the “MegaHAL” module is what you seek
  • there's a difference between the standalone MegaHAL program and the IRC bot MegaHAL module
  • you may want to make a new window in your screen session to run your bot from.. this way it won't quit when you log out (note, this does not mean starting a second separate screen session– ask how to do this)
  • document as you go along, writing down not only every command you type and file content you change, but also give explanations of why you are making these changes
  • your documentation should allow you to get back to the same place through following your own instructions… so it should answer any questions and take care of any potential hiccups you'll normally encounter along the way
  • have FUN. This isn't meant to melt your brain
  • ASK QUESTIONS; this is as much an exercise in making sure you are familiar with the mailing list and IRC as it is actually getting the IRC bot up and running. I'm not expecting anyone to do it all on their own without any guidance. I WANT you to ask questions, so everyone can help each other get to the desired end result
  • share. Have others play with your bot to test its functionality.
  • you can compare notes, but your documentation efforts and bot setup need to be your own!!
haas/spring2010/unix_irc_bot.txt · Last modified: 2013/12/22 22:47 by 127.0.0.1