Revision 296 (by ahitrov, 2013/03/26 17:59:01) Promosite (anthill) project source
#!/usr/bin/perl -w
use strict;

umask(002);
my $debugs=time();

my $ROOT=$ENV{HOME}."/Contenido/var/projects/promosuite/loader";
my $wdir="$ROOT/incom/";
my $tmpdir="$ROOT/tmp/";
my $plist="$ROOT/etc/author.priority";

my $maxL=2048*1024;

my %P;

if (open(L,$plist)){
   while (defined(my $str=<L>)){
      next if ($str=~/^\#/);
      my ($addr,$p)=split(/\s+/,$str,2);
      $p=~s/\D//g if ($p);
      $p=0 unless ($p);
      $P{$addr}=$p;
   }
   close L;
}

my $tm=time();
my $salt=$$+$tm;
my $rndPart=int(rand(1000));


my $cont='';
read (STDIN,$cont,$maxL);
my $from='_unknown';
if ($cont=~/^From:\s+(\S+)\s*$/m){
   $from=$1;
}
if ($cont=~/^AUTH_ID:\s+(\d+)/m){
   $from=$1;
}

my $prior=0;
$prior=$P{$from} if (exists($P{$from}));

my $sfn="$tm.$$.$rndPart.$prior";
my $fn="";
my $tmpfn="$tmpdir$sfn";
if (open (F,">$tmpfn")){
   select F;
   $|=1;
   select STDOUT;
   print F $cont;
   close F;
   my $debuge=time();
   my $debugd=$debuge-$debugs;
   $fn="$wdir$tm.$$.${rndPart}_$debugd.$prior";
   unless (rename($tmpfn,$fn)){
      warn "Can\'t rename temporary $tmpfn to $fn";
   }

}
else{
   warn "Can\'t save mail message to $tmpfn: $!\nMessage:\n$cont";
}