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";
}

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.