bosnobot
bosnobot copied to clipboard
A purely Python implemented IRC bot framework.
======== bosnobot
bosnobot is a Python IRC bot. It will pretty much do whatever you want it to do. It is very easy to get up and running.
Dependancies
Like most software there will be some dependancy. bosnobot currently depends on:
* Python 2.5.1 (Could work with pre-2.5, but not tested.)
* Twisted 2.4 (Twisted 2.4 ships with OS X 10.5, but I have also tested
with 8.0.1.)
If you decide you want to use the built-in DatabaseLogger
you will also
need:
* SQLAlchemy 0.4.6
Installation
To get bosnobot on your local machine you will need to grab a clone of it from GitHub. To do this you should have git installed on your system. Once that is installed you can execute::
git clone git://github.com/brosner/bosnobot.git
This will create a new directory in your current working directory named
bosnobot
. You will then need to get bosnobot on your PYTHONPATH::
export PYTHONPATH=`pwd`/bosnobot
You are all set! In the future there will be a provided setup.py file that can take care doing the installation into site-packages.
Configuration
To get up and running you will need to have a settings file read to rock and roll. This file is a Python script that sets up the configuration for the bot.
Currently this file must be set in an environment variable,
BOSNOBOT_SETTINGS_MODULE
. Create the file bosnobot_settings.py
somewhere on your PYTHONPATH
. Then you can execute::
export BOSNOBOT_SETTINGS_MODULE=bosnobot_settings
BOT_NICKNAME
Default: ''
(Empty string)
This will be the nickname that the bot uses to identify itself on the IRC server.
BOT_PASSWORD
Default: ''
(Empty string)
The password associated with the nickname to verify your identity on the IRC server.
BOT_CHANNELS
Default: ()
(Empty tuple)
A tuple of channels the bot should auto-join once connected to the server. This could potentionally look like::
BOT_CHANNELS = (
"#django",
)
BOT_IRC_SERVER
Default: ''
(Empty string)
The IRC server the bot should establish a connection.
BOT_IRC_PORT
Default: 6667
The port on which BOT_IRC_SERVER
listens on.
MESSAGE_HANDLERS
Default: ()
(Empty tuple)
A tuple of strings that indicate the Python class to use as a message handler. bosnobot comes with a few message handlers. Let's say you want to log all messages to a database, this would look like::
MESSAGE_HANDLERS = (
"bosnobot.message_handlers.database_logger.DatabaseLogger",
)
Be sure to read the message handler documentation before running with scissors with this setting. TODO: write that documentation.
Running the Bot
To run the bot based on its installation above you can simply execute::
python -m bosnobot
Need more help?
You can give our mailing list a shot on Google Groups (http://groups.google.com/group/bosnobot) or via e-mail [email protected].
We also hang out on freenode (irc.freenode.org) on the #bosnobot channel.
Contributing
When others contribute to an open-source project it makes it that much better. If you are so inclined to assist me with making bosnobot even better here is the run down you need to know.
bosnobot is hosted on GitHub. This makes it painless to fork bosnobot for development. Grab an account or just click the fork icon on GitHub. This will create a copy of the repo for your own use. Then hop into a shell and type::
git clone [email protected]:<your-user-name>/bosnobot.git
This will give you a local copy. Be sure to read git documentation if you have never used it before. I am really telling you what GitHub is doing, so go check out their documentation for more information.
Once you have done some super awesome patch you will want to notify brosner that your work is done. You can issue a pull request. This documentation has no idea how that works on GitHub. Maybe your first patch is fixing this file.