Yeah I know, the page looks really cheap right now. It should get better
though (can't really get worse..)
Sorry to ruin all your hopes upfront, but tiBot is not functionnal enough
yet to be used on a real IRC channel and perform anything useful. Currently
most of what is done is some infrastructure in it. It should have enough
functions to be reasonably useful by version 0.5.
What is tiBot?
tiBot is an automated IRC connection, known as bot, intended to help channel
ops manage their channels. There are already alot of other bots out there,
but none had all I wanted in a bot, so i decided to make my own (also allows
me to apply alot of what i saw in theory in class, mostly about object
oriented design and project management).
What I plan on building into tiBot :
Boring channel stuff, like banlist, op/deop, flood control, etc. It should
have most of what the bots you see around today have in that area. (version
Also boring userlist administration, suspensions, infolines, etc. (version
Less boring: database accessible via keywords or groups of keywords, making
it a good information bot. (version 1.0)
Even less boring: Keeps track of alot of information about the users it
sees, like last user@host for a nick, or last nick for a user@host, history
of users and ops (listing kicks, warnings, bans etc with reasons). All
of this will be searchable by different criteria, thanks to SQL =) (version
The fun part (at least it will be fun to code in) : Since the bot has a
large amount of information on users, it will be able to "intelligently"
learn interresting stuff about users, for instance if someone gets banned
with a *!*user@*.isp.com ban, and rejoins on the same host, then the bot
will know that this user just evaded a ban, and should be thrown back out.
Who said AI could not apply to IRC bots ;) (version 2.0)
What's currently usable?
tiBot is highly modular, and some parts of it are completed, and ready
for use. You are free to use any of them in your projects, and modify them
to suit your needs. I will make tarballs of them at a later time. for now,
you can download them via anonymous CVS (see below).
Parts that are usable:
IRCModule and its related classes. To use this, you need: IRCModule.cpp,
IRCModule.h, Channels.cpp, Channels.h, Channel.cpp, Channel.h, ChanUser.cpp,
ChanUser.h, Ban.cpp, Ban.h, numeric.h, Socket.cpp, Socket.h, ClientSocket.cpp,
ClientSocket.h, and QT 1.44+.
Socket and ClientSocket classes (for asynchronous TCP connections). You
need: Socket.cpp, Socket.h, ClientSocket.cpp, ClientSocket.h, QT 1.44+.
How do I get the good stuff?
You can download a tarball of the CVS repository
(Jan 12 2000).
However, the tarball will not always be up to date. The latest version
is available via anonymous CVS. To get the source tree, do the following:
cvs :pserver:email@example.com:/cvsroot co tibot
This will download a full version of the source tree to ./tibot.
Also tiBot's class documentation is available online.
It has a few bugs due to KDoc though. You can download a copy through CVS
as well with:
cvs :pserver:firstname.lastname@example.org:/cvsroot co tibot-doc
What does tiBot depend on?
Since I'm not fond of rewriting tons of stuff myself, I used a few things
that were readily available. Most of you probably have at least part of
those dependencies installed.
QT 1.44+ (not tested with QT 2.0, but
I really don't see why it shouldn't work). tiBot is not graphical, I use
QT for its very good signal/slot system, as well as timers, containers
mysql . tiBot uses a mySQL database
to keep its information. Therefore to compile it, you need to have mysql
Can I help?
I welcome any help, test/problem reports, even patches. If you want
to help the project, write to email@example.com
, stating what part interrests you the most. That way I can know what's
being done, and avoid having developpers lose time writing the same stuff.