Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37403900
en ru br
ALT Linux repositórios
S:3.2.8-alt2
5.0: 3.2.1-alt7
4.1: 3.2.1-alt5.M41.1
4.0: 3.2.1-alt6.M40.1
3.0: 3.1.0-alt1b

Group :: Rede/Outros
RPM: redirector

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

dbl/000075500000000000000000000000001103771004400116125ustar00rootroot00000000000000dbl/FAST000075500000000000000000000002061103771004400122730ustar00rootroot00000000000000#!/bin/bash


/usr/local/rejik3/dbl/Update.Fast

/usr/local/rejik3/dbl/dbl_expand /usr/local/rejik3/dbl/fast.dbl

squid -k reconfiguredbl/FULL000075500000000000000000000002011103771004400122730ustar00rootroot00000000000000#!/bin/bash


/usr/local/rejik3/dbl/Update

/usr/local/rejik3/dbl/dbl_expand /usr/local/rejik3/dbl/list.dbl

squid -k reconfiguredbl/Update000075500000000000000000000076451103771004400127760ustar00rootroot00000000000000#!/usr/bin/perl -w

use File::Copy;

$login="";
$pass="";
$WGET="/usr/bin/wget";
$dir="/usr/local/rejik3/dbl";

# Write log function
sub wlog
{
my ($sec, $min, $hour, $mday, $mon, $year) = localtime ;
open (LOG,">>$dir/update.log") or die "Can't open $dir/update.log log: $!\n";
printf LOG "%4d-%02d-%02d %2d:%02d:%02d %s\n", $year + 1900,$mon+1, $mday, $hour, $min, $sec,$_[0];
close (LOG);
}

wlog("======= Start update ========");
# Get local dbl version
if (-e "$dir/VERSION")
{
open(VER,"<$dir/VERSION") or die "Can't open $dir/VERSION: $!\n";
$version=<VER>;
close (VER);
}
else
{$version="1";}

# Download new file's
wlog("Download new files (curent local version is $version)");
$ret=system("$WGET -t 1 -o $dir/wget.log \"http://rejik.ru/cgi-bin/download2.cgi?Login=$login\&Pass=$pass\&Version=$version\" -O $dir/new.tmp");

if ($ret!=0)
{
wlog("Can't download. See $dir/wget.log for error\n");
exit;
}

#Check to html
open (FD,"<$dir/new.tmp") or die "Can't open $dir/new.tmp: $!\n";
$line=<FD>;
if ($line =~/\<\!DOCTYPE HTML PUBLIC/)
{
wlog("Download html file. See $dir/new.html\n");
close(FD);
move("$dir/new.tmp","$dir/new.html");
exit;
}

# Untar new file's
wlog("Untar new files to $dir/NEW");
system("rm -f $dir/NEW/*; rmdir $dir/NEW");
system("mkdir $dir/NEW");
$ret=system("tar xf $dir/new.tmp -C $dir/NEW >$dir/tar.log 2>$dir/tar.log");
if ($ret!=0)
{
wlog("Can't untar. Command \"tar xzf $dir/new.tmp -C $dir/NEW >$dir/tar.log 2>$dir/tar.log\" return error. See $dir/tar.log for error\n");
exit;
}

# Get new file's list
opendir(DIR,"$dir/NEW") or die "Can't opendir $dir/NEW: $!\n";
while (defined($file=readdir(DIR)))
{
next if $file =~/^\.\.?$/;
push (@files,$file);
}

# Check for one x.gz file
if ($files[0]=~/^(\d+)\.gz/)
{
copy("$dir/NEW/$1.gz", "$dir/list.dbl");

open(VER,">$dir/VERSION") or die "Can't open $dir/VERSION: $!\n";
print VER "$1";
close (VER);

unlink("$dir/new.tmp","$dir/tar.log","$dir/wget.log");
wlog("Copy new file to $dir/list.dbl\n");
exit;
}

# Check for NONE file
if ($files[0] eq "NONE")
{
unlink("$dir/new.tmp","$dir/tar.log","$dir/wget.log");
wlog("New data not found. You have last version.\n");
exit;
}

# Check for SCORE file
if ($files[0] eq "SCORE")
{
unlink("$dir/new.tmp","$dir/tar.log","$dir/wget.log");
wlog("You dont have score to download dbl list.\n");
exit;
}

## Unpack list.dbl to list.tmp
wlog("Unpack list.dbl to list.tmp");
$ret=system("cat $dir/list.dbl | gzip -d >$dir/list.tmp");
if ($ret!=0)
{
wlog("Can\'t ungzip. Command \"cat $dir/list.dbl | gzip -d >$dir/list.tmp\" return error.\n");
exit;
}

$continue_flag=1;
while ($continue_flag)
{
$continue_flag=0;
foreach $file (@files)
{
if ($file =~/${version}_(\d+)\.gz/)
{
#ungzip patch
wlog("ungzip $dir/NEW/${version}_$1\.gz to $dir/NEW/${version}_$1");
$ret=system("cat $dir/NEW/${version}_$1\.gz | gzip -d >$dir/NEW/${version}_$1");
if ($ret!=0)
{
wlog("Can't ungzip. Command \"cat $dir/NEW/${version}_$1\.gz | gzip -d >$dir/NEW/${version}_$1\" return error.\n");
exit;
}

wlog("patch $dir/list.tmp by ${version}_$1");
$ret=system("patch -s $dir/list.tmp -i $dir/NEW/${version}_$1");
if ($ret!=0)
{
wlog("Can't patch. Command \"patch -s $dir/list.tmp -i $dir/NEW/${version}_$1\" return error.\n");
exit;
}

$version=$1;
$continue_flag=1;
}
}
}

## Pack list.dbl to list.tmp
wlog("Pack list.tmp to list.dbl\n");
$ret=system("cat $dir/list.tmp | gzip -c >$dir/list.dbl");
if ($ret!=0)
{
wlog("Can\'t ungzip. Command \"cat $dir/list.tmp | gzip -c >$dir/list.dbl\" return error.\n");
exit;
}

# Set new verion
open(VER,">$dir/VERSION") or die "Can't open $dir/VERSION: $!\n";
print VER $version;
close (VER);


# Delete temp files
unlink("$dir/new.tmp","$dir/tar.log","$dir/wget.log","$dir/list.tmp");

dbl/Update.Fast000075500000000000000000000024561103771004400136650ustar00rootroot00000000000000#!/usr/bin/perl -w

use File::Copy;

$login="";
$pass="";
$WGET="/usr/bin/wget";
$dir="/usr/local/rejik3/dbl";

# Write log function
sub wlog
{
my ($sec, $min, $hour, $mday, $mon, $year) = localtime ;
open (LOG,">>$dir/update.fast.log") or die "Can't open $dir/update.fast.log log: $!\n";
printf LOG "%4d-%02d-%02d %2d:%02d:%02d %s\n", $year + 1900,$mon+1, $mday, $hour, $min, $sec,$_[0];
close (LOG);
}

wlog("======= Start update ========");

# Download new data
wlog("Download new data");
$ret=system("$WGET -t 1 -o $dir/wget.log \"http://rejik.ru/cgi-bin/fast_get2.cgi?Login=$login\&Pass=$pass\" -O $dir/new.tmp");

if ($ret!=0)
{
wlog("Can't download. See $dir/wget.log for error\n");
exit;
}

#Check to html
open (FD,"<$dir/new.tmp") or die "Can't open $dir/new.tmp: $!\n";
$line=<FD>;
if ($line =~/\<\!DOCTYPE HTML PUBLIC/)
{
wlog("Download html file. See $dir/new.html\n");
close(FD);
move("$dir/new.tmp","$dir/new.html");
exit;
}

# gzip new data to fast.dbl
$ret=system("cat $dir/new.tmp | gzip -c >$dir/fast.dbl");
if ($ret!=0)
{
wlog("Can\'t ungzip. Command \"cat $dir/new.tmp | gzip -c >$dir/fast.dbl\" return error.\n");
exit;
}

wlog("New data now aviable in $dir/fast.dbl");

# Delete temp files
unlink("$dir/new.tmp","$dir/wget.log");
dbl/dbl_expand000075500000000000000000000117661103771004400136530ustar00rootroot00000000000000#!/usr/bin/perl -w
use XML::Parser;
use Text::Iconv;

$my_nick="";
$min_trust=300;
@good_guys=("slava");
@bad_guys=("test");
$dir="/usr/local/rejik3/dbl";

## Init some vars
%files=();
$converter = Text::Iconv->new("UTF-8","KOI8-R"); #or windows-1251
%members=();
%member_block=();
$member_block_flag=0;
%rule=();
$trust=0;

## Set handlers for xml parser
my $parser= XML::Parser->new(Handlers=>{
Start=> \&elem_start,
End => \&elem_end,
Char => \&char_data});

## Parse input
$filename=shift @ARGV or die "Use $0 file.dbl\n";
chomp ($filename);
open(IN, "cat $filename | gzip -d |");
$parser->parse(*IN);
close(IN);

## Close files
foreach $file (keys %files)
{
close($files{$file});
}

## Sort, uniq, delete
foreach $file (keys %files)
{
if ($file=~/^-/) {next;}
@list=();
%del=();

delete($files{"$file"});
## Read del file if exists
if (exists($files{"-$file"}))
{

open (DEL,"<$dir/lists/-$file") or die "Can't open $dir/lists/-$file: $!\n";
while (<DEL>)
{
chomp ();
$del{$_}=1;
}
close(DEL);
unlink("$dir/lists/-$file");
delete($files{"-$file"});
}

## Read data file
open (DTA,"<$dir/lists/$file") or die "Can't open $dir/lists/$file: $!\n";
while (<DTA>)
{
chomp ();
push(@list,$_);
}
close (DTA);


## Sort, uniq, del & write to temp file
$old="";
open (DTA,">$dir/lists/${file}") or die "Can't open $dir/lists/$file: $!\n";
foreach $line (sort @list)
{
if ($old eq $line) {next;}
if (exists($del{$line})) {next;}
$old=$line;
print DTA "$line\n";
}
close (DTA);
}

## Sort, uniq, delete remaining files
foreach $file (keys %files)
{
$file=~s/^-//;
@list=();
%del=();

## Read del file if exists
if (exists($files{"-$file"}))
{
open (DEL,"<$dir/lists/-$file") or die "Can't open $dir/lists/-$file: $!\n";
while (<DEL>)
{
chomp ();
$del{$_}=1;
}
close(DEL);
unlink("$dir/lists/-$file");
}

## Read data file
open (DTA,"<$dir/lists/$file") or die "Can't open $dir/lists/$file: $!\n";
while (<DTA>)
{
chomp ();
push(@list,$_);
}
close (DTA);


## Sort, uniq, del & write to temp file
$old="";
open (DTA,">$dir/lists/${file}") or die "Can't open $dir/lists/$file: $!\n";
foreach $line (sort @list)
{
if ($old eq $line) {next;}
if (exists($del{$line})) {next;}
$old=$line;
print DTA "$line\n";
}
close (DTA);
}

exit;

## Element start handler
sub elem_start
{
my ($expat,$name,%attr)=@_;

if ($name eq "member")
{
%member_block=();
$member_block_flag=1;
return(0);
}

if ($name eq "record")
{
%rule=();
$trust=0;
return(0);
}

if ($name eq "add" or $name eq "check")
{
$calc_flag=1;
%calc=();
return(0);
}

$option=$name;
}

## Element end handler
sub elem_end
{
my ($expat,$name)=@_;

if ($name eq "member")
{
if (exists($member_block{"name"}) && exists($member_block{"trust"}))
{
## Users trust modifications
if ($member_block{"name"} eq $my_nick) {$member_block{"trust"}+=9999999999999;}

foreach (@good_guys)
{if ($_ eq $member_block{"name"}) {$member_block{"trust"}+=999999;}}

foreach (@bad_guys)
{if ($_ eq $member_block{"name"}) {$member_block{"trust"}=0;}}

## Add member to list
$members{$member_block{"name"}}=$member_block{"trust"};
}
$member_block_flag=0;
return(0);
}

if ($name eq "check" or $name eq "add")
{

$calc_flag=0;
if (exists($calc{"answer"}) && $calc{"answer"} eq "No")
{$trust-=$members{$calc{"user"}};}
else
{$trust+=$members{$calc{"user"}};}
return(0);
}


if ($name eq "record")
{
if ( $trust>=$min_trust)
{
add($rule{"group"},$converter->convert($rule{"rule"}));
}
else
{
del($rule{"group"},$converter->convert($rule{"rule"}));
}
return(0);
}
$option="null";
}

## Char data handler
sub char_data
{
my ($expat,$text)=@_;
if ($option eq "null") {return(0);}
if ($member_block_flag==1) {$member_block{$option}.=$text;}
if ($calc_flag) {$calc{$option}.=$text;}
else {$rule{$option}.=$text;}
}

sub add
{
my $group=$_[0];
my $rule=$_[1];

unless (exists($files{$group}))
{
open ($files{$group}, ">>$dir/lists/$group") or die "Can't make file $dir/lists/$group: $!\n";
}

print {$files{$group}} "$rule\n";
}

sub del
{
my $group="-".$_[0];
my $rule=$_[1];

unless (exists($files{$group}))
{
open ($files{$group}, ">>$dir/lists/$group") or die "Can't make file $dir/lists/$group: $!\n";
}

print {$files{$group}} "$rule\n";

}
dbl/dbl_stat000075500000000000000000000017331103771004400133400ustar00rootroot00000000000000#!/usr/bin/perl -w
use XML::Parser;

## Set handlers for xml parser
my $parser= XML::Parser->new(Handlers=>{
Start=> \&elem_start,
End => \&elem_end,
Char => \&char_data});

%groups=();

## Parse input
$filename=shift @ARGV or die "Use $0 file.dbl\n";
chomp ($filename);
open(IN, "cat $filename | gzip -d |");
$parser->parse(*IN);
close(IN);

foreach (sort keys %groups)
{
print "$_ - ".$groups{$_}." records\n";
}

## Element start handler
sub elem_start
{
my ($expat,$name,%attr)=@_;
if ($name eq "record")
{
%rule=();
return(0);
}
$option=$name
}

## Element end handler
sub elem_end
{
my ($expat,$name)=@_;

if ($name eq "record")
{
unless (exists($groups{$rule{"group"}})) {$groups{$rule{"group"}}=0;}
$groups{$rule{"group"}}++;
return(0);
}
$option="null";
}

sub char_data
{
my ($expat,$text)=@_;
if ($option eq "null") {return (0);}
$rule{$option}.=$text;
}
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009