#!/usr/bin/perl

$seconds = 60; #seconds before repeating.


$old_total_messages = 0;
$old_seen_messages = 0;
$old_folder = "";

while(1)
{
   $total_messages = 0;
   $seen_messages = 0;
   $folder = "";
   $offlineimap_pid = "";
   $mutt_pid = "";

   open MUTT_PID, "pidof mutt |";
   $mutt_pid = <MUTT_PID>;
   close MUTT_PID;
   chomp $mutt_pid;

   open OFFLINEIMAP_PID, "pidof python2.2 /usr/bin/offlineimap |";
   $offlineimap_pid = <OFFLINEIMAP_PID>;
   close OFFLINEIMAP_PID;
   chomp $offlineimap_pid;

   if($offlineimap_pid){ sleep $seconds; next;}

   open FETCHMAIL, "fetchmail -c 2>/dev/null |";
   while(<FETCHMAIL>)
   {
      if(/(\d+) messages \((\d+) seen\).*\(folder (.*)\)/)
      {

	 $total_messages = $1;
	 $seen_messages = $2;
	 $folder = $3;
	 if($total_messages > $seen_messages)
	 {
	    unless(($old_total_messages == $total_messages) and
		  ($old_seen_messages == $seen_messages)	and
		  ($old_folder eq $folder)
		  )
	    {
	       system("apanel_offlineimap");
	       $old_total_messages = $total_messages;
	       $old_seen_messages = $seen_messages;
	       $old_folder = $folder;
	       last;
	    }
	 }
      }
   }
   close FETCHMAIL;
   sleep $seconds;
}
