]>
Commit | Line | Data |
---|---|---|
18038256 | 1 | GNU Thales |
2 | ---------- | |
2ace9480 | 3 | by Lucas Nussbaum <lucas@lucas-nussbaum.net> |
4 | ||
5 | -- Introduction -- | |
6 | ||
18038256 | 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. | |
2ace9480 | 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. | |
71 | ||
72 | -- Credits -- | |
73 | ||
74 | Much code is based on Epona's <http://www.epona.org>, written by lara. Epona is | |
75 | itself based on IRCServices, so some code probably comes from | |
76 | IRCServices too. | |
77 | ||
78 | Many people helped me : | |
79 | I would like to thank Jollino <jollino@sogno.net> : He helped me a lot with | |
80 | Unreal support. | |
81 | I would like to thank Partizanu <partizanu@netchat.ro> for his contribs and his | |
82 | help. | |
83 | I would like to thank Virginie (admin on Kewl.Org IRC network) for providing me | |
84 | a good occasion to laugh. She didn't want me to test Thales on Kewl.Org because | |
85 | she though I would be able to get passwords this way. She also told me she knew | |
86 | the IRC protocol. |