cmdbot
cmdbot copied to clipboard
CmdBot, a bot with `cmd` attitude
=================================
CmdBot, a bot with cmd
attitude
Introducing CmdBot
CmdBot is an IRC Bot written in Python. It consists of a core module that
defines a Bot
class you can extend to fit your needs. It comes with a
Brain
, that is to say a simple instance of object
that can contain
any data you want. That's like a memory that lives as long as the Bot is
working.
It's far from being 100% perfect, but I think it takes the best of Python's introspection mechanism.
By the way, why the name "CmdBot"? Because its function loading system has been
inspired by the Python's cmd module <http://docs.python.org/library/cmd.html>
_,
that uses class member introspection to catch the designated functions and
execute them.
License
This piece of software is published under the terms of the WTFPL (Do What The Fuck You Want License), that can be summed as its term "0":
0. You just DO WHAT THE FUCK YOU WANT TO.
For more information, go to : http://sam.zoy.org/wtfpl/
The extensive documentation
An extensive documentation can be found at http://readthedocs.org/docs/cmdbot/
Install
CmdBot is hosted on Github. If you want the latest code, go fetch it here:
https://github.com/brunobord/cmdbot
You can install the program using::
python setup.py install
A cute "ini" file
The mandatory step: building an ini file. You can use the sample bot.ini file that sits in the source code, or edit your own. You just have to know that only two variables must be set in it::
[general]
host = name.your.server
chan = #nameyourchan
The other vars are optional, and usually default values would suit.
The "admin" value #################
If you want some admin to take this bot over (and you surely need it at some point), set the value with a space-separated list of nicks... e.g.::
admins = nick1 nick2 nick3
You may use the "@admin" decorator in your extended classes to process the bot line only if the user that has send the order is in this nick list.
Want to run the bot?
It's as simple as::
python cmdbot/core.py bot.ini
But... your bot won't be able to do much. Here is a sample "dialog"::
22:31 -!- cmdbot [[email protected]] has joined #cdc
22:31 < cmdbot> Hi everyone.
22:31 < No`> cmdbot: help
22:31 < cmdbot> No`: you need some help? Here is some...
22:31 < cmdbot> Available commands: help, ping
22:32 < No`> cmdbot: ping
22:32 < cmdbot> No`: pong
22:32 -!- cmdbot [[email protected]] has quit [EOF From client]
Want a more clever bot?
Here's how:
- Create a module / script with a bot that extends the core bot
- add it a few "do_[stuff]" commands
- make it more clever, by using its "brain"
You can see a few example of what a "brainy bot" can do in the samples
directory.
What's next?
Well... now, the sky is the limit. Extended bots can manipulate data, remember it, treat and process it... And you can still use this bot as a "dumb", if you want!