#!/usr/bin/perl

use FTN::JAM;

#use strict;
#use warnings;

my $echobasedir = "/home/fido/mail/echo/";

my ( %totalstat, $totalstatstr, $startdate, $enddate );


sub echo_stat($$)
{
	my ( $msg_dir, $echo_tag ) = @_;
	my ( $mb, $handle, %baseheader, $nummsgs, %msgheader, @subfields,
		$msgtext, $m_from, $m_to, $m_subj, $m_from_address, %stats,
		$statstr, $msg_date );

	$mb = $msg_dir . $echo_tag;
	$handle = FTN::JAM::OpenMB($mb);
	if(!$handle) {
		print STDERR "Failed to open $mb. ($!)\n";
		return;
	}

	if (!FTN::JAM::ReadMBHeader($handle,\%baseheader)) {
		print STDERR "Failed to read messagebase header of $mb. ($!)\n";
		return;
	}

	if (!FTN::JAM::GetMBSize($handle,\$nummsgs)) {
		print STDERR "Failed to get size of messagebase $mb. ($!)\n";
	}
  for (my $i = $baseheader{BaseMsgNum}; $i < $baseheader{BaseMsgNum}+$nummsgs; $i++)
  {
#     $found = 0;
     if (!FTN::JAM::ReadMessage($handle,$i,\%msgheader,\@subfields,\$msgtext)) {
        printf( STDERR "%6s Failed to open message\n",$i);
     }else {
	( undef, $m_from, undef, $m_to, undef, $m_subj, undef, $m_from_address ) = @subfields;

	my ($mday,$mon,$year)=(localtime($msgheader{DateWritten}))[3...5];
#	$msg_date = sprintf("%04d%02d%02d",$year+1900,$mon,$mday);
#	$startdate = $msg_date if !defined $startdate;
#	$enddate = $msg_date;

	$stats{$m_from} += 1;
	$totalstat{$m_from} += 1;
     }
  }

  FTN::JAM::CloseMB($handle);
	foreach my $key ( sort { $stats{$b} <=> $stats{$a} } keys %stats ){
		$statstr .=  sprintf( "%-36s%7d\n", $key, $stats{$key} );
	}
return $statstr;
}

my $s;

if ( opendir( my $dh, $echobasedir) ) {
	while( readdir($dh) ){
		next if $_ !~ /^(.*?)\.jdt$/i || $_ =~ /_tmp\./i;
		$s = echo_stat( $echobasedir, $1 );
		$totalstatstr .= $s if defined $s;
#		print "   EchoArea: " .uc($1)."\n$s";

	}
	close($dh);
} else { print STDERR "Can't open $echobasedir. ($!)\n"; }

$s ='';
foreach my $key ( sort { $totalstat{$b} <=> $totalstat{$a} } keys %totalstat ){
	$s .=  sprintf( "%-36s%7d\n", $key, $totalstat{$key} );
}

print $s;

#%totalstat, $totalstatstr