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. It allows it to be hosted everywhere (but only works on Linux). Libcurl is also used in some plugins. This project also comes with a complete code documentation generated by doxygen (see Code documentation in additionnal informations section at the bottom of this page).

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. This file contains trustyRC's features.

Update : this project has been stopped, there will never be any updates.

Plugins list

  • admin : stores (in an xml file) bot accounts (by host) and provides stuff for bot administration. This is one of the most important plugins
  • advertising : displays advertises on channels
  • antiflood : protects the bot from flood commands (users who request to many actions from the bot). Drop obsoletes messages
  • bzrh : provides tools to query bugzilla.redhat.com
  • ctcp : This plugin answers to CTCP commands (PING and VERSION)
  • danstonchat : display quotes from danstonchat.com
  • fedorafr : allow users to search informations on Fedora-fr.org wiki and planet. The bot gives URLs containing search result
  • fedoraproject : provides tools to retrieve informations about fedora project (packages and fas)
  • gameserver : provides tools to query game servers (Q3, CS ans WARSOW)
  • ignore : provides an ignore system that allow the bot to ignore users
  • infos : give informations about the bot, and the hosting system
  • ipconverting : provides commands to convert an IP to a Host and a host to all its corresponding IPs
  • lamoule : manages a ladder for the "lamoule" game
  • logfactory : logs channels activity
  • magic8ball : magic 8 ball game (http://en.wikipedia.org/wiki/Magic_8-Ball)
  • moderation : allows channel's moderation (op, voice, kick,bans etc ...) with acces (if admin plugin is loaded)
  • module : manage other plugins. This one allows super admins to load and unload plugins while the bot is running (hot (un)pluging)
  • ping : answers to ping events, and send ping to check connection with the server
  • pluginsample : Plugin example
  • postconnect : mamage all actions performed after server connection (join channels, auth to bots, and raw actions)
  • quotes : stores quotes in a XML file and give access to them
  • remotecontrol : launch a tcp server to provide remote control (via telnet or gui) (protocol not implemented)
  • slapme : highlight users to make them remember important things
  • survey : surveys management (polls)
  • tele : display french TV program
  • trad : translate a sentence from a language to an other using translate.google.com
  • usersinfos : gives functions to follow users modes on channels and keep informations (nick,ident,host,status). Usefull for operator commands and ban masks. This plugin is needed by administration plugins (admin,moderation...)

A plugin creation HOWTO is now available (see "Additionnal informations" at the bottom of the page)

SVN access

You can now access to the latest trustyRC sources via SVN repository. To get the latest sources, just check out anonymously the project trunk :

$ svn checkout http://nicoleau-fabien.net/svn/trustyrc/trunk/ trustyrc-svn

Downloads

Actually, only sources, fedora-9-i386 RPM and fedora-8-i386 RPM are availables. I'm planning to also build fedora-9-x86_64 RPM, fedora-8-x86_64 RPM and CentOS-5-i386 RPM. For RPMs packages, you need to download trustyrc,trustyrc-plugins and trustyrc-plugins-extras.

Compilation / Installation

See README file for compilation and installation instructions (also embeded with sources).

Configuration / Usage

A website is dedicated to trustyRC's configuration (whole configuration or plugin's configuration). It also details all availables commands with usage instructions. See trustyRC's manual website.

News

News about trustyRC are all written on my blog, in trustyRC's section. First news are in French, but next will be written in both languages (English and French). See trustyRC's news.

Why "trustyRC" ?

trustyRC is a mix between trust and IRC. There is also a joke with RC (Release Candidate) because at the begining (2006), trustyRC was not made to be finnished one day and become stable. It was just a hobby. Things have (of course) changed, except the name :).

Additionnal infomations