GNU Thales ---------- by Lucas Nussbaum -- Introduction -- GNU Thales is a IRC-to-MySQL gateway. It connects to your IRC network as a server (like other services), and store everything it receives in a MySQL database. It doesn't build stats itself, it just fills 5 MySQL tables called user, server, chan, ison and maxvalues. You can then query the database with SQL queries to retrieve the information you need. To see examples of how to use Thales, please refer to the contrib/ dir. -- Installation -- Please read the INSTALL file. -- Upgrade -- When upgrading from an older version of thales, you might want to keep the data stored in the maxvalues table. If you reload the database structure, you will overwrite it. To prevent that, you must dump the table data before the upgrade, and put it back after the upgrade. Dumping the table data : run mysqldump --no-defaults --user= --password --complete-insert --no-create-info maxvalues > maxvalues.sql and must be replaced by what looks appropriate. then, proceed with the table structure upgrade, and end with : mysql --user= --password < maxvalues.sql to insert the data back into the table. -- Important Notes -- 1. Assumptions about the protocol Thales uses the database very intensively. To prevent an enormous increase of its usage, it makes asumptions about the validity of the data sent by the IRC server. For example, when it receives a JOIN, it doesn't check if the user is already on the channel. The problem is that most servers make the same assumptions about the information they receive. A bogus server could then crash Thales. If Thales crashes on your network, please run it with the -v option (IRC protocol info will be logged), and provide me with a log of the problem. (use contrib/logfilter/) 2. Why is named Thales ? Thales was first developped to be used on the Langochat.net IRC network. Another stats service, based on eggdrop and stats.mod, already existed and was called Euclide. So we decided to go on with famous mathematicians, and Eratosthene was such a difficult word ... -- Comments/Contact/Help -- This is my first real Open Source project. I just hope you users will act not to make it be my last one ;) You can contact me at lucas@lucas-nussbaum.net . A mailing list has been created. To be subscribed, mail majordomo@ox.lucas-nussbaum.net with "subscribe thales" in the body. A confirmation will be sent. -- Bug reports -- If you experience problems, please send a complete description of the problem with the output of : gcc -v uname -a mysql -V ... If you reproduce the bug, please run thales with the -v option to generate a more verbose log. Before sending the log, please use tools/logfilter/logfilter.sh to filter & gzip the logfile. -- Credits -- Much code is based on Epona's , written by lara. Epona is itself based on IRCServices, so some code probably comes from IRCServices too. Many people helped me : I would like to thank Jollino : He helped me a lot with Unreal support. I would like to thank Partizanu for his contribs and his help. I would like to thank Virginie (admin on Kewl.Org IRC network) for providing me a good occasion to laugh. She didn't want me to test Thales on Kewl.Org because she though I would be able to get passwords this way. She also told me she knew the IRC protocol.