trustyRC (version 0.1.4) by eponyme (Nicoleau Fabien) (laste update : 2009-08-16)
===================================================

* Description :
  ===========
   trustyRC is an IRC bot (robot) written in C++ by myself (Nicoleau Fabien (fr) aka eponyme) distributed under GNU GPL licence V3.
   At first I wrote it just to play with sockets and then I add some features ... Now trustyRC is a fully modular and multiserver bot whitch includes
   all of the common bot features (channel moderation, administration, accounts system, quotes ...) , and much more...
   This bot has been (re)written several times with differents libraries, and also in Java.
   Now trustyRC is written in standard C++, and uses tinyXML library for datas storage. Libcurl is also used in some plugins.
   This project also comes with a complete code documentation generated by doxygen.

   Now what ? AGAIN an IRC robot ? ... Yes, yet an other one. But trustyRC's particularity is to be fully modular. In fact, trustyRC is "just" a kernel,
   that load features such as log system, configuration parser, networking, etc, and ... a plugin (un)loader. This kernel is quite "useless" without its plugins.
   All plugins can communicate with other ones and this system provides high flexible maintenance. A plugin can be loaded/unloaded while the bot is running.
   So if a plugin needs to be updated, it can be unloaded, rebuilded, and reloaded. During this steps, the bot will never stop.
   Plugins are stored in shared librairies (.so files) witch contains new features.
   When the .so file is loaded, features are added to the bot, and when the plugin is unloaded, features are no more usable (except by reloading the plugin ;) ).
   Plugins creation is quite easy and source code is fully documented.

* Folders :
  =======
   Here is trustyrc's tree :
   _ trustyrc (root)
   |__ trustyrc.conf.sample
   |__ trustyrc binary
   |__ makefile
   |
   |__ plugins
   |   |__ [shared librairies]
   |   
   |__ src
   |   |__ [bot sources]
   |       |__ [plugins sources]

* Compilation / Installation :
  ==========================
   g++ and make commands are required. No special librairy needed (except for bzrh and fedoraproject modules that needs libcurl-devel package,
   so you'll need it to build all plugins (package name can be also curl-devel, or something like this ...)). 
   In trustyrc's folder, run :
   $ make
   After compilation, you can run the bot from current directory. To install the bot on the system, as root :
   # make install
   You can send those variables to make and make install commands to tweak installation paths or options (Read Makefile for advanced tweak) :
   * PREFIX : change PREFIX (default = /usr/local)
   * DESTDIR : change DESTDIR (default = )
   * PLUGINSDIR : change PLUGINSIDR (you must include prefix in PLUGINSIDR) (default = $(PREFIX)/lib/trustyrc)
   * BINDIR : change BINDIR (you must include prefix and destdir in BINDIR) (default = $(PREFIX)/bin)
   * HAVE_TINYXML : If you have "tinyxml" installed on your system and want to use it, pass HAVE_TINYXML=yes to 'make' and 'make install' commands.
     Else embeded tinyxml sources will be used (2.5.3) (default = no)
   * DEBUG : switch debug mode (default = no)

   You can also use 'make doxygen' to generate doxygen documentation (requires doxygen, pdflatex and makeindex commands). See "Code documentation" section.

   All parameters will be stored in "make_install_params" file (you'll have to use those parameters for uninstall command to use same pathes)

   Note 1 : if you don't have root permissions, you can use DESTDIR parameter to install trustyrc in your home directory (or whereever you have write permissions)
   Note 2 : you can store plugins in 3 directories => $HOME/.trustyrc/plugins/, PLUGINSIDR and plugins folder (in executable file directory). The bot will try to load
            plugins according to that order


* Uninstallation :
  ==============
   To uninstall the software, type :
   # make uninstall
   Don't forget to apply same parameters that you used for 'make install'. Don"t forget that 'make_install_params' file contains
   install parameters values. 

* Configuration :
  =============
   Copy the trustyrc.conf.sample to $HOME/.trustyrc/ and rename it to <a_name>.conf.
   "a_name" will be used to store datas in $HOME/.trustyrc/a_name/. You can use server name (quakenet.conf, freenode.conf), or conf1, conf2, or any other name :).
   Use one file per server you will connect to. If you want the bot connect to 2 servers,  use 2 copy of sample. Then edit them.
   All files in the directory with .conf extension will be considered as a configuration file, and the bot will try to load them on start up.
   You can also use -c <an other directory> as a command line parameter to use a custom directory that contains configuration files.
   See http://trustyrc.nicoleau-fabien.net/manual/commands.php for detail configuration (kernel and modules).

* Launch :
  ======
   trustyrc [-c configuration_dir] [-b] (-c to specify configuration directory (default = ~/.trustyrc/), -b for background launch mode)

* My bot is installed, configured, and launched. What do I have to do now ?
  =========================================================================
   The first thing to do is to read the online manual (http://nicoleau.fabien.free.fr/trustyrc_manual/).
   Then you have to register yourself as a super administrator. Of course you have configured the superadmin password in the configuration file, but this password 
   is just usefull for some important commands (as adding a superadmin ^^). Registering yourself as an administrator will allow you to access to all
   administration commands without typing any pass (the bot will recognise you by your host mask). Basicaly, your host will be used, but you can set any mask type. 
   Of course if you use your host, you'll have to have a static one. To register the first superadmin (you ...), type (this example uses '!' as command char, use
   the one you configured) :
   /msg bot_nick !addsuperadmin super_admin_pass mask
   example :
   /msg trustyRC !addsuperafmin mysecretpass *!*@myself.ircnetwork.com
   To check that your are now recognized as a super admin, type : 
   !whoami
   The bot should tell you that you are a "bot superadmin". 
   You can now continue with setting up channels, and give some access to your mates :D

* Code documentation :
  ==================
   To generate code documentation, juste type 'make doxygen'. A code_documentation directory will be created, containing html en pdf files.
   carefull : - code documentation generation requires doxygen command
              - pdf generation requires pdflatex and makeindex commands

* Versions :
  ========
   See 'changelog' file.

* Contact :
  =======
  Feel free to contact me :
  - by mail : nicoleau.fabien@gmail.com
  - on IRC : 'eponyme' on irc.freenode.net (or irc.quakenet.org)
  - using comments on trustyRC news : http://nicoleau.fabien.free.fr/weblog/index.php?category/TrustyRC 
