#!/usr/bin/perl
# Script to count messages in $ARGV[0]'s spam folder
# Copyright 2003-2006 Kris Deugau <kdeugau@deepnet.cx>

# Time
use Time::Local;

# First, we set some defaults.
if ($ARGV[0] eq "") {
  die "No user specified!\n";
}
$nmsgs=0;

# some hashes for turning "Mon" or "Oct" into a number usable by timegm()
%months = ('Jan',0,'Feb',1,'Mar',2,'Apr',3,'May',4,'Jun',5,'Jul',6,'Aug',7,'Sep',8,'Oct',9,'Nov',10,'Dec',11);

# Flow:
# -> Open user's spambox.  Lock it so procmail can't write new
#    data while we're busy expiring old data.  This process
#    *shouldn't* take long;  YMMV.

open SPAMFILE, "</home/$ARGV[0]/mail/spam";

while (<SPAMFILE>) {
  if (/^From /) {
    $nmsgs++;
# From "erefvlbs5@chelsa1234567"@yahoo.com  Wed Nov 19 21:30:31 2003
# From "jrDude001@prodigy.com, yahoo309@yahoo.com, Kate555"@kiss.com  Wed Nov 26 17:07:44 2003
# From "Melisa Painter"@clerk.com  Mon Dec  8 21:25:35 2003
    $fromline = $_;
$temp1 = $fromline;
$temp1 =~ s/\".+\"//;
@fromtemp = split /\s+/, $temp1;
$fromnum = @fromtemp;
#print "$fromtemp[$fromnum-4] $fromtemp[$fromnum-3]\n";
#print $temp1;
#    @frombits = split /\s+/, $_, 3;
#    @datebits = split /\s+/, $frombits[2];
#    $temp = "$datebits[1] $datebits[2]";
    $temp = sprintf "%s %02u",  $fromtemp[$fromnum-4], $fromtemp[$fromnum-3];
    $msgcount{$temp}++;
  }
}

foreach $key (sort {$a cmp $b} keys %msgcount) {
  print "$key: $msgcount{$key}\n";
}
print "Total messages: $nmsgs\n";
