version 1.102, 2003/04/20 08:21:12
|
version 1.110, 2003/04/20 12:26:43
|
Line 11 use Getopt::Std;
|
Line 11 use Getopt::Std;
|
getopts('z'); |
getopts('z'); |
open STDERR, ">/var/tmp/errors1"; |
open STDERR, ">/var/tmp/errors1"; |
my $newsurl='http://news.chgk.info/'; |
my $newsurl='http://news.chgk.info/'; |
my $HTMLDIR=""; |
my $HTMLDIR="/znatoki/dimrub/db/baza"; |
my $realHTMLDIR; |
my $realHTMLDIR; |
if ($^O =~ /win/i) { |
if ($^O =~ /win/i) { |
$realHTMLDIR="/html/znatoki/baza"; |
$realHTMLDIR="/html/znatoki/baza/"; |
} else |
} else |
{ |
{ |
$realHTMLDIR="/home/znatoki/public_html/dimrub/db/baza/"; |
$realHTMLDIR="/home/znatoki/public_html/dimrub/db/baza/"; |
Line 35 $outputkvo=100 if $outputkvo>100;
|
Line 35 $outputkvo=100 if $outputkvo>100;
|
|
|
if (param('debug')) {$debug=1; $printqueries=1} |
if (param('debug')) {$debug=1; $printqueries=1} |
*STDERR=*STDOUT if $debug; |
*STDERR=*STDOUT if $debug; |
if ($url !~ /db\.chgk\.info/ && $url !~ /localhost/ ) { |
if ($url !~ /db\.chgk\.info/ && $url !~ /localhost/ && $url !~ /bilbo/) { |
my $u="http://db.chgk.info/cgi-bin/db.cgi?$qs"; |
my $u="http://db.chgk.info/cgi-bin/db.cgi?$qs"; |
Redirect ($u); |
Redirect ($u); |
exit; |
exit; |
Line 104 my @months=('000','Jan',"Feb","Mar","Apr
|
Line 104 my @months=('000','Jan',"Feb","Mar","Apr
|
sub NewEnough { |
sub NewEnough { |
my ($a) = @_; |
my ($a) = @_; |
my ($year, $month, $day) = split('-', $a); |
my ($year, $month, $day) = split('-', $a); |
|
$month=1 if ($month<=0); |
|
$day=1 if ($day<=0); |
return (time - timelocal(0, 0, 0, $day, $month -1, $year) < $TMSECS); |
return (time - timelocal(0, 0, 0, $day, $month -1, $year) < $TMSECS); |
} |
} |
|
|
Line 223 sub tourhref {
|
Line 224 sub tourhref {
|
$res=$t; |
$res=$t; |
$res.=$a?"-a":"-q" unless $gr; |
$res.=$a?"-a":"-q" unless $gr; |
$res.=".html"; |
$res.=".html"; |
|
$res=~s/(\#\d+)(.*)$/$2$1/; |
|
$res="$HTMLDIR$res" unless $opt_z; |
return $res; |
return $res; |
} else { |
} else { |
$res=$url; |
$res=$url; |
Line 1049 sub PrintTournament {
|
Line 1052 sub PrintTournament {
|
else {$textid=$Tournament{'Id'}}; |
else {$textid=$Tournament{'Id'}}; |
|
|
|
|
if ($SingleTour or $Tournament{'Type'} =~ /Т/) { |
if ($SingleTour or ($Tournament{'Type'} =~ /Т/)) { |
$list .= dd(img({src=>$imgsrc, alt=>$alt}) |
$list .= dd(img({src=>$imgsrc, alt=>$alt}) |
. " " . $Tournament{'Title'} . " " . |
. " " . $Tournament{'Title'} . " " . |
$Tournament{'PlayedAt'} . $qnum) . |
($Tournament{'PlayedAt'}||"") . $qnum) . |
dl( |
dl( |
dd("[" |
dd("[" |
. a({href=>tourhref($textid,0)}, |
. a({href=>tourhref($textid,0)}, |
Line 1063 sub PrintTournament {
|
Line 1066 sub PrintTournament {
|
} else { |
} else { |
$list .= dd(a({href=> |
$list .= dd(a({href=> |
$url . "?tour=$textid&comp=1"}, |
$url . "?tour=$textid&comp=1"}, |
img({src=>'/icons/compressed.gif', alt=>'[ZIP]', border=>1})). " " . |
img({src=>'/icons/compressed.gif', alt=>'[ZIP]', border=>1})). |
|
" " . |
img({src=>$imgsrc, alt=>$alt}) |
img({src=>$imgsrc, alt=>$alt}) |
. " " . a({href=>tourhref($textid,0,1)}, |
. " " . a({href=>tourhref($textid,0,1)}, |
$Tournament{'Title'}. " ". |
$Tournament{'Title'}. " ". |
$Tournament{'PlayedAt'}||'') . $qnum); |
($Tournament{'PlayedAt'}||'')) . $qnum); |
} |
} |
} |
} |
$output .= dl($list); |
$output .= dl($list); |
Line 1414 sub Include_virtual {
|
Line 1418 sub Include_virtual {
|
my ($fn, $output) = (@_, ''); |
my ($fn, $output) = (@_, ''); |
|
|
open F , $fn |
open F , $fn |
or return; #die "Can't open the file $fn: $!\n"; |
or return ""; #die "Can't open the file $fn: $!\n"; |
|
|
while (<F>) { |
while (<F>) { |
if (/<!--#include/o) { |
if (/<!--#include/o) { |
Line 1425 sub Include_virtual {
|
Line 1429 sub Include_virtual {
|
} |
} |
$output .= $_; |
$output .= $_; |
} |
} |
return $output; |
return $output||""; |
} |
} |
|
|
sub PrintArchive { |
sub PrintArchive { |
Line 1450 sub PrintAll {
|
Line 1454 sub PrintAll {
|
|
|
my (%Tournament) = &GetTournament($dbh, $Id); |
my (%Tournament) = &GetTournament($dbh, $Id); |
my (@Tours) = &GetTours($dbh, $Id); |
my (@Tours) = &GetTours($dbh, $Id); |
|
my $SingleTour = $#Tours == 0; |
|
|
my ($New) = ($Id and $Tournament{'Type'} eq 'Ч' and |
my ($New) = ($Id and $Tournament{'Type'} eq 'Ч' and |
&NewEnough($Tournament{"CreatedAt"})) ? |
&NewEnough($Tournament{"CreatedAt"})) ? |
img({src=>"/znatoki/dimrub/db/new-sml.gif", alt=>"NEW!"}) : ""; |
img({src=>"/znatoki/dimrub/db/new-sml.gif", alt=>"NEW!"}) : ""; |
Line 1471 sub PrintAll {
|
Line 1477 sub PrintAll {
|
|
|
|
|
$output .= dd(img({src=>"/icons/folder.gif", alt=>"[*]"}) . |
$output .= dd(img({src=>"/icons/folder.gif", alt=>"[*]"}) . |
" " . a({href=>tourhref($textid,0,1)}, |
" " . a({href=>tourhref($textid,0,!$SingleTour)}, |
$Tournament{'Title'}) ." " . ($Tournament{'PlayedAt'}||'') . " $New"); |
$Tournament{'Title'}) ." " . ($Tournament{'PlayedAt'}||'') . " $New"); |
} |
} |
if ($Id == 0 or $Tournament{'Type'} =~ /Г/ or $Tournament{'Type'} eq '') { |
if ($Id == 0 or $Tournament{'Type'} =~ /Г/ or $Tournament{'Type'} eq '') { |
Line 1767 sub WriteFile {
|
Line 1773 sub WriteFile {
|
|
|
sub Bottom |
sub Bottom |
{ |
{ |
my $output.=&Include_virtual("../dimrub/db/footer.html"); |
my $output.=&Include_virtual("../dimrub/db/footer.html")||""; |
$output.=p."<center><font size=-2>Обновление: ".&Include_virtual("../dimrub/db/date")."</center></font>"; |
$output.=p."<center><font size=-2>Обновление: ".&Include_virtual("../dimrub/db/date")."</center></font>"; |
$output.=<<EEE |
$output.=<<EEE |
<SCRIPT LANGUAGE="JavaScript"> |
<SCRIPT LANGUAGE="JavaScript"> |
Line 2023 EOT
|
Line 2029 EOT
|
open TS, "timestamp"; |
open TS, "timestamp"; |
my $d=$dbh->quote(<TS>); |
my $d=$dbh->quote(<TS>); |
close TS; |
close TS; |
my ($sth) = $dbh->prepare("SELECT t1.Id, t1.FileName, t1.Type, |
open FF, ">${realHTMLDIR}index.html" or die "ERROR! - ${HTMLDIR}index.html\n"; |
count(t2.Id) |
my $o=$globaloutput; |
FROM Tournaments as t1, Tournaments as t2 |
$o.=&PrintTournament($dbh, 0, 0); |
WHERE t1.CreatedAt>$d AND t2.ParentId=t1.Id GROUP BY t1.Id"); |
$o.=&Bottom; |
|
print FF $o; |
|
close FF; |
|
open FF, ">${realHTMLDIR}all.html" or die "ERROR! - ${HTMLDIR}all.html\n"; |
|
$o=$globaloutput; |
|
$o.=&PrintAll($dbh,0); |
|
$o.=&Bottom; |
|
print FF $o; |
|
close FF; |
|
|
|
|
|
# my ($sth) = $dbh->prepare("SELECT t1.Id, t1.FileName, t1.Type, |
|
# count(t2.Id) |
|
# FROM Tournaments as t1, Tournaments as t2 |
|
# WHERE t1.CreatedAt>$d AND t2.ParentId=t1.Id GROUP BY t1.Id"); |
|
my ($sth) = $dbh->prepare("SELECT t1.Id, t1.FileName, t1.Type, count(t2.Id) FROM Tournaments as t1 LEFT JOIN Tournaments as t2 |
|
ON t2.ParentId=t1.id WHERE t1.CreatedAt>$d GROUP BY t1.Id"); |
$sth->execute; |
$sth->execute; |
my ($Id,$fname,$type,$c); |
my ($Id,$fname,$type,$c); |
while (($Id,$fname,$type,$c)=$sth->fetchrow,$Id) { |
while (($Id,$fname,$type,$c)=$sth->fetchrow,$Id) { |
|
next unless $fname; |
print "$fname\n"; |
print "$fname\n"; |
$fname=~s/\.txt$//; |
$fname=~s/\.txt$//; |
print " c=$c\n"; |
|
if ($type=~/Т/ || $c<=1) |
if ($type=~/Т/ || $c<=1) |
{ |
{ |
open FF, ">$realHTMLDIR$fname-q.html" or die "ERROR! - $HTMLDIR$fname-q.html\n"; |
open FF, ">$realHTMLDIR$fname-q.html" or die "ERROR! - $fname-q.html\n"; |
my $o=$globaloutput; |
my $o=$globaloutput; |
$o.=&PrintTournament($dbh, $Id, 0); |
$o.=&PrintTournament($dbh, $Id, 0); |
$o.=&Bottom; |
$o.=&Bottom; |
Line 2049 print " c=$c\n";
|
Line 2071 print " c=$c\n";
|
close FF; |
close FF; |
} |
} |
else { |
else { |
open FF, ">$realHTMLDIR$fname.html" or die "ERROR! - $HTMLDIR$fname-q.html\n"; |
open FF, ">$realHTMLDIR$fname.html" or die "ERROR! - $fname-q.html\n"; |
my $o=$globaloutput; |
my $o=$globaloutput; |
$o.=&PrintTournament($dbh, $Id, 0); |
$o.=&PrintTournament($dbh, $Id, 0); |
$o.=&Bottom; |
$o.=&Bottom; |