X-Git-Url: https://code.th-h.de/?p=usenet%2Fnewsstats.git;a=blobdiff_plain;f=bin%2Fgroupstats.pl;h=2c1d9f50a7e96f6b66322c2ec2a8438fb6b4ef8e;hp=7a3f7e46ce2e0fb224968e3a693f426d80acdb87;hb=e39d4207a649749f24866d2ee1afeb8ebf3364e2;hpb=1af57a53905788c99a088bb6b17088293c0224d1 diff --git a/bin/groupstats.pl b/bin/groupstats.pl index 7a3f7e4..2c1d9f5 100755 --- a/bin/groupstats.pl +++ b/bin/groupstats.pl @@ -13,7 +13,7 @@ # which Perl itself is published. BEGIN { - our $VERSION = "0.01"; + our $VERSION = "0.02"; use File::Basename; # we're in .../bin, so our module is in ../lib push(@INC, dirname($0).'/../lib'); @@ -78,9 +78,16 @@ if ($OptReportType) { $OptReportType = 'default'; } } -# read list of newsgroups from --checkgroups -# into a hash reference -my $ValidGroups = &ReadGroupList($OptCheckgroupsFile) if $OptCheckgroupsFile; +# honor $OptCheckgroupsFile, +# warn for $OptSums if set concurrently +my $ValidGroups; +if ($OptCheckgroupsFile) { + # read list of newsgroups from --checkgroups + # into a hash reference + $ValidGroups = &ReadGroupList($OptCheckgroupsFile); + &Bleat(1,"--sums option can't possibly work with --checkgroups option set") + if $OptSums; +} ### read configuration my %Conf = %{ReadConfig($OptConfFile)}; @@ -126,12 +133,17 @@ if ($OptBoundType and $OptBoundType ne 'default') { } ### get sort order and build SQL 'ORDER BY' clause +# force to 'month' for $OptReportType 'average' or 'sum' +$OptGroupBy = 'month' if ($OptReportType and $OptReportType ne 'default'); # default to 'newsgroup' for $OptBoundType 'level' or 'average' $OptGroupBy = 'newsgroup' if (!$OptGroupBy and $OptBoundType and $OptBoundType ne 'default'); -# force to 'month' for $OptReportType 'average' or 'sum' -$OptGroupBy = 'month' if ($OptReportType and $OptReportType ne 'default'); +# default to 'newsgroup' if $OptGroupBy is not set and +# just one newsgroup is requested, but more than one month +$OptGroupBy = 'newsgroup' if (!$OptGroupBy and $OptMonth and $OptMonth =~ /:/ + and $OptNewsgroups and $OptNewsgroups !~ /[:*%]/); # parse $OptGroupBy to $GroupBy, create ORDER BY clause $SQLOrderClause +# if $OptGroupBy is still not set, SQLSortOrder() will default to 'month' my ($GroupBy,$SQLOrderClause) = SQLSortOrder($OptGroupBy, $OptOrderBy); # $GroupBy will contain 'month' or 'newsgroup' (parsed result of $OptGroupBy) # set it to 'month' or 'key' for OutputData() @@ -265,7 +277,7 @@ groupstats - create reports on newsgroup usage =head1 SYNOPSIS -B [B<-Vhcs> B<--comments>] [B<-m> I[:I] | I] [B<-n> I] [B<--checkgroups> I] [B<-r> I] [B<-l> I] [B<-u> I] [B<-b> I] [B<-g> I] [B<-o> I] [B<-f> I] [B<--filetemplate> I] [B<--groupsdb> I] [--conffile I] +B [B<-Vhcs> B<--comments>] [B<-m> I[:I] | I] [B<-n> I] [B<--checkgroups> I] [B<-r> I] [B<-l> I] [B<-u> I] [B<-b> I] [B<-g> I] [B<-o> I] [B<-f> I] [B<--filetemplate> I] [B<--groupsdb> I] [B<--conffile> I] =head1 REQUIREMENTS @@ -375,6 +387,9 @@ example: See the B man page for details. +This option does not work together with the B<--checkgroups> option as +all "virtual" groups will not be present in the checkgroups file. + =item B<--checkgroups> I Restrict output to those newgroups present in a file in checkgroups format @@ -384,6 +399,9 @@ line is ignored). All other newsgroups will be removed from output. Contrary to B, I is not a template, but refers to a single file in checkgroups format. +The B<--sums> option will not work together with this option as "virtual" +groups will not be present in the checkgroups file. + =item B<-r>, B<--report> I Choose the report type: I, I or I @@ -686,7 +704,7 @@ Thomas Hochstein =head1 COPYRIGHT AND LICENSE -Copyright (c) 2010-2012 Thomas Hochstein +Copyright (c) 2010-2013 Thomas Hochstein This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.