use LWP::UserAgent;
my $server = "news.gmane.org";
+my $spamurl = "http://spam.gmane.org/{group}:{msgnum}";
# List of groups to process
my @groups;
s/\s*$//g;
next if (/^$/);
$server = $1 if (m/^server (.+)$/);
+ $spamurl = $1 if (m/^spamurl (.+)$/);
push(@groups, $1) if (m/^group (.+)$/);
}
close(CFG);
my @spammsgs;
print "\n$groupname: $msgfirst -> $msglast ($msgcount)\n";
-
- while (++$curmsgnum <= $msglast) {
+ my $aktive = 1;
+ while ($aktive && ++$curmsgnum <= $msglast) {
print "\n[$curmsgnum/$msglast] ============ $groupname ===========\n";
my $headersref = $nntp->head($curmsgnum);
print "**** Message already flagged as spam. Ignoring.\n";
next;
}
- print "Non-spam/Spam/view Body/view Full/jump #/Help/Quit [N] ? ";
+ print "Non-spam/Spam/sKip/view Body/view Full/jump #/Help/Quit [N] ? ";
my $input = <>;
chomp $input;
$input = "\L$input";
$curmsgnum = $msglast if $curmsgnum > $msglast;
print "Jumping to message number $1\n";
next;
+ } elsif ("k" eq $input) {
+ # Skip this group and move to the next group
+ $aktive = 0;
+ } elsif ("f" eq $input) {
+ # View message header and body
+ my $articleref = $nntp->article($curmsgnum);
+ list_lines($articleref);
+ $curmsgnum--;
+ } elsif ("b" eq $input) {
+ # View message body
+ my $bodyref = $nntp->body($curmsgnum);
+ list_lines($bodyref);
+ $curmsgnum--;
+ } elsif ("h" eq $input) {
+ # print help
} else {
print STDERR "error: Unhandled choice '$input'\n";
}
}
- for my $msgnum (@spammsgs) {
- report_spam($groupname, $msgnum);
+ if (@spammsgs) {
+ print "Submit changes? [yes] ";
+ my $input = <>;
+ chomp $input;
+ $input = "\L$input";
+ if ("" eq $input || "yes" eq $input) {
+ for my $msgnum (@spammsgs) {
+ report_spam($groupname, $msgnum);
+ }
+ }
}
$grouplast{$groupname} = --$curmsgnum;
print "Storing $curmsgnum as last read message in $groupname\n";
}
+sub list_lines {
+ my $arrayref = shift;
+ for (@{$arrayref}) {
+ print " ", $_;
+ }
+}
+
sub process_header {
my $headerref = shift;
my $subject;
sub report_spam {
my ($groupname, $msgnum) = @_;
- # Visit http://spam.gmane.org/gmane.linux.debian.devel.lsb:253
- my $response = $ua->get("http://spam.gmane.org/$groupname:$msgnum");
+ my $url = $spamurl;
+ $url =~ s/{group}/$groupname/g;
+ $url =~ s/{msgnum}/$msgnum/g;
+ my $response = $ua->get($url);
if ($response->is_success) {
print "Reported $groupname:$msgnum as spam.\n";
} else {