oh-irc-bot (or "WelcomeBot", its IRC nick) is a bot for welcoming people into the #openhatch irc channel when no one is paying attention. The goals are to:
- alert community members when someone new enters the room and says hello (either by using their nick in a response, or by sending a private message)
- help a person to feel welcome even when there's no one around, and providing more information about staying in touch
bot.py
is the project's main file. It uses the socket module to communicate and gathers a list of known IRC nicknames, stored in nicks.csv
. Its basic functions include:
- If someone enters the channel, the bot checks to see if they are a known nick. If not, it adds them to a list of people to greet. If no one else has spoken into the channel after a period of time, 60 seconds by default, it greets them. If someone else (not the new nick) speaks into the channel within the set wait time, or if the nick is known, the bot remains silent. The bots response text includes the nicks of channel maintainers/frequent contributors so that they are pinged. Channel maintainers can change the wait time of the bot by using the following command in the irc channel: Botname --wait-time new wait time in seconds.
- If someone says hello to the bot, the bot says hello back.
- If someone asks the bot for information (via key phrases like "help", "faq", etc) the bot explains what it is and links to this repository.
To run the bot:
- Download the repository. If you need help using github, see here.
- Edit bot.py to change the nickname to something besides "WelcomeBot" and the channel to "openhatch-bots".
- Open up a command line and type
python bot.py
. - Although all IRC messages should be printed to your command line, for development purposes, it will probably be useful to be on IRC separately using your normal nick.
If you run into setup difficulties, ping shauna on freenode (via the #openhatch channel is preferred) and/or leave an issue in this repository's issue tracker.
The issue tracker lists improvements we want to make. Please feel free to submit pull requests to address these issues. If you're not familiar with how to do this using github, see here. You can also ask me for clarification (again, I am shauna on the #openhatch IRC.)
This bot was adapted from code found here.
Also this has been very helpful.