Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
[citadel] / ctdlsalearn / README
1 ctdlsalearn is a program that scans a specified set of "spam" and "ham"
2 folders (rooms), and batch-submits their contents to the "sa-learn" program
3 in order to train its Bayesian filters.
4
5 This is a work in progress.  It isn't finished.  You are only permitted to
6 use this program if you promise not to whine about it if it doesn't work.
7
8 I mean it!  If you complain in the Citadel Support forum that ctdlsalearn
9 isn't working, I will hunt you down and jam ice picks into your eye sockets
10 and smash your kneecaps with a ball pean hammer.   THIS IS UNSUPPORTED.
11
12 Still with us?  Ok, here's how to make it work.
13
14 * Your Citadel server needs to be r7737 or newer (Citadel 7.63 or newer
15   will do just fine).  That's where we fixed a bug that prevents internal
16   programs from deleting messages.  Without this fix, messages won't get
17   deleted from your spam and ham folders, and they'll just pile up
18   forever and get resubmitted to sa-learn on every run.  Don't let this
19   happen to you.
20
21 * Back up your data.  I may have hidden an "rm -fr /" in here somewhere
22   just to mess with your head, and I'm brutally unforgiving of people who
23   don't take backups.
24
25 * Open up src/main.c with your favorite text editor (which ought to
26   be vi, not emacs).  Yes, you're editing the source code to configure
27   the program.  Like I said, it's a work in progress.  I haven't written
28   a configuration tool yet.  If this is a problem for you, please either
29   write the configuration tool, or jump off a cliff; either one will
30   solve the problem.
31
32 * Look for the references to "ctdldir".  Is one of the paths we're trying
33   a valid location for your Citadel installation?  If not, add yours.
34
35 * Now look for the calls to do_room().  This is where you can specify the
36   locations of ham and spam folders.  The SpamAssassin folks tell us that
37   you need both in order for Bayesian filtering to work well.  ctdlsalearn
38   will attempt to *delete* messages from these folders after submitting
39   them, so don't be a schmuck and point it to your inbox.  Create ham and
40   spam folders for this purpose.  Probably you want to copy ham to your
41   ham folder, and move spam to your spam folder (unless you have some sick
42   fetish for spam and you like to keep it around).  Also note that if you
43   specify any rooms that are users' private mailboxes, you'll need to
44   prepend the namespace prefix (which is their user number, padded with
45   zeroes to ten digits, followed by a dot).
46  
47   You can specify as many spam and ham folders as you want.  Just keep
48   adding more do_room() calls.
49
50 * Compile the program and run it.  If it works, great; if not, re-read
51   the warning at the top of this document.  Note that you can also use
52   the "-v" (verbose) command line option.
53