]> jfr.im git - irc/thales.git/blame - README
- server.lastsplit is not overwritten when a server rejoins.
[irc/thales.git] / README
CommitLineData
18038256 1GNU Thales
2----------
2ace9480 3by Lucas Nussbaum <lucas@lucas-nussbaum.net>
4
5-- Introduction --
6
18038256 7GNU Thales is a IRC-to-MySQL gateway. It connects to your IRC network as a
8server (like other services), and store everything it receives in a MySQL
9database. It doesn't build stats itself, it just fills 5 MySQL tables called
10user, server, chan, ison and maxvalues. You can then query the database with
11SQL queries to retrieve the information you need.
2ace9480 12
13To see examples of how to use Thales, please refer to the contrib/ dir.
14
15-- Installation --
16
17Please read the INSTALL file.
18
19-- Upgrade --
20
21When upgrading from an older version of thales, you might want to keep the data
22stored in the maxvalues table. If you reload the database structure, you will
23overwrite it. To prevent that, you must dump the table data before the upgrade,
24and put it back after the upgrade.
25Dumping the table data :
26run mysqldump --no-defaults --user=<your_username> --password --complete-insert
27--no-create-info <your_database> maxvalues > maxvalues.sql
28<your_username> and <your_database> must be replaced by what looks appropriate.
29then, proceed with the table structure upgrade, and end with :
30mysql --user=<your_username> --password <your_database> < maxvalues.sql
31to insert the data back into the table.
32
33-- Important Notes --
34
351. Assumptions about the protocol
36Thales uses the database very intensively. To prevent an enormous increase of
37its usage, it makes asumptions about the validity of the data sent by the IRC
38server. For example, when it receives a JOIN, it doesn't check if the user is
39already on the channel.
40The problem is that most servers make the same assumptions about the information
41they receive. A bogus server could then crash Thales. If Thales crashes on your
42network, please run it with the -v option (IRC protocol info will be logged),
43and provide me with a log of the problem. (use contrib/logfilter/)
44
452. Why is named Thales ?
46Thales was first developped to be used on the Langochat.net IRC network.
47Another stats service, based on eggdrop and stats.mod, already existed and was
48called Euclide. So we decided to go on with famous mathematicians, and
49Eratosthene was such a difficult word ...
50
51-- Comments/Contact/Help --
52
53This is my first real Open Source project. I just hope you users will act not
54to make it be my last one ;)
55You can contact me at lucas@lucas-nussbaum.net .
56
57A mailing list has been created. To be subscribed, mail
58majordomo@ox.lucas-nussbaum.net with "subscribe thales" in the body. A
59confirmation will be sent.
60
61-- Bug reports --
62
63If you experience problems, please send a complete description of the problem
64with the output of :
65gcc -v
66uname -a
67mysql -V
68...
69If you reproduce the bug, please run thales with the -v option to generate a
70more verbose log.
71
72-- Credits --
73
74Much code is based on Epona's <http://www.epona.org>, written by lara. Epona is
75itself based on IRCServices, so some code probably comes from
76IRCServices too.
77
78Many people helped me :
79I would like to thank Jollino <jollino@sogno.net> : He helped me a lot with
80Unreal support.
81I would like to thank Partizanu <partizanu@netchat.ro> for his contribs and his
82help.
83I would like to thank Virginie (admin on Kewl.Org IRC network) for providing me
84a good occasion to laugh. She didn't want me to test Thales on Kewl.Org because
85she though I would be able to get passwords this way. She also told me she knew
86the IRC protocol.