X-Git-Url: https://code.th-h.de/?p=usenet%2Fnewsstats.git;a=blobdiff_plain;f=bin%2Fgroupstats.pl;h=4035d76a603bc8ad4c2c77131f043852219637dc;hp=7a3f7e46ce2e0fb224968e3a693f426d80acdb87;hb=2871792120fba3b9ac9fe1b7bf166638b05766fd;hpb=1af57a53905788c99a088bb6b17088293c0224d1 diff --git a/bin/groupstats.pl b/bin/groupstats.pl index 7a3f7e4..4035d76 100755 --- a/bin/groupstats.pl +++ b/bin/groupstats.pl @@ -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() @@ -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.