From 17ef44085fbed320bf056f2b700ce80ecfe92d70 Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Tue, 3 Sep 2013 15:10:07 +0200 Subject: [PATCH 1/2] --sums is not compatible with --checkgroups. 'Virtual' .ALL groups will never be present in a checkgroups file, and we can't use them anyway as they would contain postings from groups that are filtered out by --checkgroups. Add a warning, put a note in the documentation. Signed-off-by: Thomas Hochstein --- bin/groupstats.pl | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/bin/groupstats.pl b/bin/groupstats.pl index 7a3f7e4..d03c582 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)}; @@ -375,6 +382,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 +394,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 From 8dc6823e988b8828454f6ef1ea2b43e3e0cc5a20 Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Tue, 3 Sep 2013 17:12:09 +0200 Subject: [PATCH 2/2] Small comment fixes. Signed-off-by: Thomas Hochstein --- bin/gatherstats.pl | 2 ++ lib/NewsStats.pm | 16 +++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bin/gatherstats.pl b/bin/gatherstats.pl index 6096417..a5a486a 100755 --- a/bin/gatherstats.pl +++ b/bin/gatherstats.pl @@ -73,6 +73,8 @@ $OptStatsType = 'all' if !$OptStatsType; ### get time period from --month # get verbal description of time period, drop SQL code my ($Period) = &GetTimePeriod($OptMonth); +# bail out if --month is invalid or set to 'ALL'; +# we don't support the latter &Bleat(2,"--month option has an invalid format - please use 'YYYY-MM' or ". "'YYYY-MM:YYYY-MM'!") if (!$Period or $Period eq 'all time'); diff --git a/lib/NewsStats.pm b/lib/NewsStats.pm index 8a62179..a3676d0 100644 --- a/lib/NewsStats.pm +++ b/lib/NewsStats.pm @@ -4,7 +4,7 @@ # # Copyright (c) 2010-2013 Thomas Hochstein # -# This module can be redistributed and/or modified under the same terms under +# This module can be redistributed and/or modified under the same terms under # which Perl itself is published. package NewsStats; @@ -244,7 +244,7 @@ sub ReadGroupList { ### ignoring everything after the first whitespace and so accepting files ### in checkgroups format as well as (parts of) an INN active file) ### IN : $Filename : file to read -### OUT: \%ValidGroups: hash containing all valid newsgroups +### OUT: \%ValidGroups: reference to a hash containing all valid newsgroups my ($Filename) = @_; my %ValidGroups; open (my $LIST,"<$Filename") or &Bleat(2,"Cannot read $Filename: $!"); @@ -275,12 +275,12 @@ sub GetTimePeriod { my ($Verbal, $SQL); # define a regular expression for a month my $REMonth = '\d{4}-\d{2}'; - + # default to last month if option is not set if(!$Month) { $Month = &LastMonth; } - + # check for valid input if ($Month =~ /^$REMonth$/) { # single month (YYYY-MM) @@ -299,7 +299,7 @@ sub GetTimePeriod { # invalid input return (undef,undef); } - + return ($Verbal,$SQL); }; @@ -407,7 +407,7 @@ sub OutputData { my %ValidKeys = %{$ValidKeys} if $ValidKeys; my ($FileName, $Handle, $OUT); our $LastIteration; - + # define output types my %LegalOutput; @LegalOutput{('dump','list','pretty')} = (); @@ -439,7 +439,7 @@ sub OutputData { # safeguards for filename creation: # replace potential problem characters with '_' $FileName = sprintf('%s-%s',$FileTempl,$Caption); - $FileName =~ s/[^a-zA-Z0-9_-]+/_/g; + $FileName =~ s/[^a-zA-Z0-9_-]+/_/g; open ($OUT,">$FileName") or &Bleat(2,sprintf("Cannot open output file '%s': $!", $FileName)); @@ -776,5 +776,3 @@ sub CheckValidNewsgroups { #####------------------------------- done ---------------------------------##### 1; - -