use Net::NNTP;
use strict;
#use warnings;
#use diagnostics;
# connection constants
use constant SERVER => 'nntp.perl.org';
use constant GROUP => 'perl.cpan.testers';
# group array constants
use constant TOTAL => 0;
use constant FIRST => 1;
use constant LAST => 2;
my $email = shift or die 'No email (author) specified';
my $server = Net::NNTP->new( SERVER ) or die 'Cannot connect to server
+ ' . SERVER;
my @group = $server->group( GROUP );
my $items = shift || 50;
$items = $group[ TOTAL ] if $items > $group[ TOTAL ];
my $start = $group[ LAST ] - $items + 1;
my $count = 0;
my %stats;
$|++;
printf "Processing latest %d items out of %d\n\n", $items, $group[ TOT
+AL ];
for my $id ( $start..$group[ LAST ] ) {
print "\r$id...";
# The "From" header must match the email address
my $header = $server->head( $id );
next unless grep { /^From:.+\Q$email\E/ } @$header;
# Parse the subject for PASS, FAIL, etc
my $subject = ( grep { /^Subject:/ } @$header )[ 0 ];
next if $subject =~ /CPAN Upload/;
if( $subject =~ /^Subject: ([A-Z]+) / ) {
$stats{ $1 }++;
$count++;
}
}
$server->quit;
printf "Found %d reports\n\n", $count;
for my $type ( sort keys %stats ) {
printf "%7s: %03d\n", $type, $stats{ $type };
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|