Initial commit.
[usenet/usestats.git] / usestats.pl
CommitLineData
2ea29720
TH
1#!/usr/bin/perl
2#
3# usestats.pl
4#############
5
6# (c) 10/2003-10/2004 Thomas Hochstein <thh@inter.net>
7#
8# This program is free software; you can redistribute it and/or modify it under
9# the terms of the GNU General Public License as published by the Free
10# Software Foundation; either version 2 of the License, or (at your option)
11# any later version.
12# This program is distributed in the hope that it will be useful, but WITHOUT
13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15# more details.
16
17# Modules #############################
18# use Data::Dumper;
19use Date::Manip qw(Date_Init ParseDate Date_Cmp DateCalc UnixDate Delta_Format Date_DaysInMonth);
20use File::Find;
21use Getopt::Std;
22use Locale::Recode;
23use Mail::Address;
24use MIME::Words qw(decode_mimewords);
25
26# Versionsnummer ######################
27$ver = '0.17 beta (20041003)';
28
29# Konstanten #########################
30
31$hex_nibb = '[0-9a-fA-F]';
32$gt_hex_nibb = '[0-9A-F]';
33$lt_hex_nibb = '[0-9a-f]';
34$alpha_num = '[0-9a-zA-Z]';
35$lt_alpha_num = '[0-9a-z]';
36$gt_alpha_num = '[0-9A-Z]';
37%reporttitel = ('newsgroups' => 'Newsgroupnutzung',
38 'poster' => 'Poster (strukturiert)',
39 'posterraw' => 'Poster (unstrukturiert)',
40 'subject' => 'Subjects (strukturiert)',
41 'newsreader' => 'Newsreader (strukturiert)',
42 'nruser' => 'Nutzer pro Newsreader (strukturiert)');
43
44# Variablen ###########################
45
46# Defaults
47%config=();
48
49# $config{'newsgroup'} = '';
50# $config{'start'} = '';
51# $config{'stop'} = '';
52$config{'recursive'} = 0;
53$config{'pipeformat'} = 'mbox';
54$config{'charset'} = 'ISO-8859-1';
55$config{'tz'} = '+0200';
56$config{'graphchar'} = '#';
57
58$config{'day'} = 1;
59@reports = ('newsgroups','poster','posterraw','subject','newsreader','nruser');
60foreach $report (@reports) {
61 $config{$report} = 1;
62 $config{$report.'_width'} = 30;
63 $config{$report.'_indent'} = 2;
64 $config{$report.'_lines'} = 0;
65 $config{$report.'_cutoff'} = 0;
66 $config{$report.'_graph'} = 20;
67};
68$config{'newsgroups'} = 0;
69$config{'posterraw'} = 0;
70$config{'unknownreader'} = 'show';
71
72# Hauptprogramm #######################
73# Konfiguration einlesen
74my %options;
75getopts('hqc:r:w:', \%options);
76if ($options{'h'}) {
77 print "$0 v $ver\nUsage: $0 [-hq] [-w|r <savefile>] [-c <configfile>]\n";
78 exit(0);
79};
80print STDERR "$0 v $ver [" . scalar(gmtime) . "]\n(c) 10/2003-10/2004 Thomas Hochstein * <thh\@inter.net>\n" if (!$options{'q'});
81if ($options{'c'}) {
82 &readconfig($options{'c'});
83};
84if (length($config{'graphchar'}) > 1 or $config{'graphchar'} eq '') {
85 $config{'graphchar'} = '#';
86};
87