ngmlstat: generate traffic statistics for newsgroups and mailing-lists http://ex-parrot.com/~chris/software.html#ngmlstat This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ngmlstat is a perl program for producing reports on the traffic in USENET news groups or on mailing-lists. Traffic is broken down by time-of-posting, timezone of origin, author and thread. Reports are produced in HTML, but it is reasonably text-mode-browser friendly, so if you want a plain text version, you can probably use links or similar to generate it. The images bar.png and world-(0..23).png are used by the HTML reports. An example report is at http://ex-parrot.com/~chris/ng/cam.misc.html Because ngmlstat produces its output in the UTF-8 character set (so as to avoid problems with processing input messages in numerous different character sets), you probably need perl 5.6.0 or later to run it. (It might work with earlier versions.) You will also need the following modules: Net::NNTP MIME::Words Text::Iconv Mail::Address Mail::Internet IO::File all of which are available on CPAN. It is very easy to produce a report on a newsgroup: just set the NNTPSERVER environment variable to the name of your news server, and run ngmlstat ng newsgroup-name > report.html Use for mailing lists is slightly more complicated. In order to run reasonably quickly, ngmlstat reads information about messages on the list from a `summary file'. It is suggested that you use procmail to add messages to the summary file when they arrive, and then run ngmlstat against the summary file when convenient. To add a message to the summary file, use the syntax ngmlstat ml-submit summary-file < mail-message A suitable procmail recipe would be something like :0 c * (To|CC).*foo-discuss@lists.example.com | ngmlstat ml-submit ~/ngml/foo-discuss.summary To generate a report on a mailing list, do ngmlstat ml mailing-list-name summary-file > report.html -- the mailing-list-name parameter is used to determine the title of the report. To bootstrap the summary file with recent messages, collect them into a mail folder and do formail -Y -s ngmlstat ml-submit summary-file < recent-messages -- this will be plenty slow. Every so often you should clean out the summary file. This can be done using the command ngmlstat ml-clean summary-file ngmlstat has various command-line options, of which the most important is --interval, which allows you to specify the length of time for which the analysis is performed. Type ngmlstat help for more information. $Id: README,v 1.1 2002/05/30 23:30:15 chris Exp chris $