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