This is DaZeus 2.0, a modular IRC bot that utilizes out-of-process plugins. It provides a configuration, database and IRC interface through UNIX and TCP sockets to its plugins.
This application has the following dependencies:
- libircclient (tested against 1.3, 1.6 and 1.8)
- cmake (tested against 2.8.7 and 2.8.9)
Depending on which database backend you would like to use, the following additional dependencies apply:
- libmongo-client (MongoDB, tested against 0.1.4)
- libpqxx (PostgreSQL, tested against 3.1 and 4.0)
- libsqlite3 (SQLite, tested against 3.7)
To compile DaZeus, first checkout the Git submodules, then use CMake:
git submodule update --init
mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX=.. ..
make install
This creates a dazeus
binary in the bin
directory that you can run. If you
intend to run DaZeus 2.0 elsewhere, you can manually copy the binary there, or
simply not give the -DCMAKE_INSTALL_PREFIX=..
option to CMake if you want to
install DaZeus systemwide.
When the dazeus
binary is run, it reads the dazeus.conf
configuration file
(unless you give the -c
option). A sample configuration file is in the
project source root, called dazeus.sample.conf
.
After DaZeus has started, it connects to the database and to the IRC servers as defined in the configuration file. It also sets up the UNIX and TCP sockets as configured.
To get a useful interface with the bot, plugins are required. The section below covers a few of the basic plugins.
The API that plugins use over the socket interface is described in the doc
directory. Bindings are available for Perl, C, C++/Qt and NodeJS at the DaZeus
project on GitHub.
Please note: bindings need to be installed separately!
A list of supported plugins is available at https://github.com/dazeus. A few commonly used examples are:
dazeus-plugin-channels
: manages DaZeus's presence in channels, including automatic (re)joining after (re)connecting.dazeus-plugin-channellink
: a plugin for linking two IRC channels together, causing their message lines to be shared (one-way or two-way)dazeus-plugin-commits
: a plugin for reporting Git commits on IRCdazeus-plugin-factoids
: allows users to set and recall factoids from DaZeus' database.dazeus-plugin-karma
: A plugin for keeping karma scoresdazeus-plugin-mediawiki
: a plugin for integrating MediaWiki edits with IRCdazeus-plugin-twitter
: a plugin for integrating with Twitter users, lists and search queries
Contributions, be it amendments to the core bot or to any plugins, are most welcome! Simply fork one or more of our repositories and submit pull requests for each of your patches.
The lead developer for DaZeus is Sjors Gielen dazeus@sjorsgielen.nl. Currently it is co-authored by Ruben Nijveld ruben@gewooniets.nl and Aaron van Geffen aaron@aaronweb.net.
Several more contributors can be found in Git history.
To everyone who helped make DaZeus what it is today: thank you!