#!/opt/bin/perl

# josh's mailing list browser
# I use mutt primarily for my mailing lists..

BEGIN { $Curses::OldCurses = 1; }
use Curses;                     # PerlMenu needs "Curses"
use perlmenu;                   # Main menu package (Perl5 only)

$|=1;

$sig{ALARM}= { goto top };
alarm(60);

top:
    print "Getting folder list..\n";
    opendir (D,"$ENV{HOME}/Mail/lists");
    @folders=grep !/^[0-9\.]+$/, readdir(D);
    closedir(D);
    
    undef %unseen;
    foreach $folder (@folders) {
        print "Processing $folder..\n";
	if (open (S,"<$ENV{HOME}/Mail/lists/$folder")) {
	    foreach (<S>) {
		if (/^Delivery-Date:/) { $unseen{$folder}++; }
		if (/^Status:/) { $unseen{$folder}--; }
	    }	    
	    close(S);
	}
    }
    
    menu_init(1,"Choose a mailing list");
    foreach (sort keys %unseen) {
        next unless $unseen{$_} > 0;
	menu_item("$_: $unseen{$_} unseen",$_);
    }
    menu_item("Quit","quit");
    
    $sel=menu_display("Choose:");
    
    if ($sel =~ /^\%/) { exit 0; }
    if ($sel =~ /^quit/) { exit 0; }
    $folder=$sel;
    system ("mutt -f $ENV{HOME}/Mail/lists/$folder");

goto top;

