File:  [Local Repository] / db / prgsrc / writefile.pl
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Sat Jan 12 05:00:30 2002 UTC (22 years, 3 months ago) by roma7
Branches: MAIN
CVS tags: HEAD
Adding writefile.pl

use DBI;
@months=('000','Jan',"Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct",
          "Nov","Dec");

open WARN ,"warn";
$fname=shift;
$fname=~s/\.txt$//;

    my($dbh) = DBI->connect("DBI:mysql:chgk", "piataev", "")
	or die "Can't connect to DB chgk\n";

   if (WriteFile($fname)==-1) {print "File?";}


sub WriteFile {
  my ($fname) = @_;
  my $query= "SELECT Id, Title, Copyright, Info, URL, 
                      Editors, EnteredBy, PlayedAt, CreatedAt 
                     from Tournaments where FileName=".$dbh->quote("$fname.txt");
  $sth=$dbh->prepare($query);

  $sth->execute;
  ($Id, $Title, $Copyright, $Info, $URL, 
   $Editors, $EnteredBy, $PlayedAt, $CreatedAt)=
      $sth->fetchrow;
  return -1 unless $Id;
  open (OUT, ">new/$fname.txt");
  print OUT "Чемпионат:\n$Title\n\n";
  my $date=$PlayedAt;
  ($year,$month,$day)=split /-/, $date;
#  $month=0,$date=0 if $year && $month==1 && $day==1;
  $pdate=sprintf("%02d-%3s-%4d",$day,$months[$month],$year);

  print OUT "Дата:\n$pdate\n\n" if $date;

  print OUT "URL:\n$URL\n\n" if $URL;

  print OUT "Инфо:\n$Info\n\n" if $Info;

  print OUT "Копирайт:\n$Copyright\n\n" if $Copyright;

  print OUT "Редактор:\n$Editors\n\n" if $Editors;


  $query= "SELECT Id, Title, Copyright, Editors from Tournaments where ParentId=$Id order by Id";
  $sth=$dbh->prepare($query);
  $sth->execute;
  while (($tourid,$tourtitle,$cright,$editor)=$sth->fetchrow,$tourid)
  {
#    $text{$tourid}="Тур:\n$tourtitle\n\n";
    $query= "SELECT * from Questions where ParentId=$tourid order by QuestionId";
    $sth1=$dbh->prepare($query);
    $sth1->execute;
    push(@tours,$tourid);
    $tourtitle{$tourid}=$tourtitle;
    $copyright{$tourid}=$cright;
    $editor{$tourid}=$editor;
    $vid='';
    $author='';
    $eqauthor=1;
    $qnumber=0;
    while (@arr=$sth1->fetchrow, $arr[0])
    {
	my($i, $name) = 0;
	$qnumber++;
	foreach $name (@{$sth1->{NAME}}) {
	        $arr[$i]=~s/^(.*?)\s*$/$1/;
		$Question{$tourid}[$qnumber]{$name} = $arr[$i++];
	}
	if ($vid)
        {
          if ($vid ne $Question{$tourid}[$qnumber]{'Type'}) {print WARN "Warning: Different types for Tournament $tourid\n"}
        } else 
        {
            $vid=$Question{$tourid}[$qnumber]{'Type'};
        } 

	if ($author)
        {
          if ($author ne $Question{$tourid}[$qnumber]{'Authors'})  
          {
             $eqauthor=0;
          }
        } else 
        {
            $author=$Question{$tourid}[$qnumber]{'Authors'};
            $eqauthor=0 unless $author;
        } 
    }
    $vid{$tourid}=$vid;
    $qnumber{$tourid}=$qnumber;
    $author{$tourid}=$eqauthor ? $author : '';
  }


  $vid='';
  $eqvid=1;
  $eqauthor=1;
  foreach (@tours)
  {
     $vid||=$vid{$_};
     if ($vid{$_} ne $vid)
     {
        $eqvid=0;
     }
     $author||=$author{$_};
     if (!$author{$_} || ($author{$_} ne $author))
     {
        $eqauthor=0;
     }
  }
  
  print OUT "Вид:\n$vid\n\n" if $eqvid;
  print OUT "Автор:\n$author\n\n" if $eqauthor;

  foreach $tour(@tours)
  {
     print OUT "Тур:\n$tourtitle{$tour}\n\n";
     print OUT "Вид:\n$vid{$tour}\n\n" if  !$eqvid;
     print OUT "Копирайт:\n$copyright{$tour}\n\n" if $copyright{$tour} && ($copyright{$tour} ne $Copyright);
     print OUT "Редактор:\n$editor{$tour}\n\n" if $editor{$tour} && ($editor{$tour} ne $Editors);
     $tourauthor=0;
     if (!$eqauthor && $author{$tour})
     { 
       print OUT "Автор:\n$author{$tour}\n\n";
       $tourauthor=1;
     }
     foreach $q(1..$qnumber{$tour})
     {
        print OUT "Вопрос $q:\n".$Question{$tour}[$q]{'Question'}."\n\n";
	print OUT  "Ответ:\n".$Question{$tour}[$q]{'Answer'}."\n\n";
	print OUT  "Автор:\n".$Question{$tour}[$q]{'Authors'}."\n\n" 
               if !$tourauthor && !$eqauthor && $Question{$tour}[$q]{'Authors'};
	print OUT  "Комментарий:\n".$Question{$tour}[$q]{'Comments'}."\n\n" 
               if $Question{$tour}[$q]{'Comments'};
	print OUT "Источник:\n".$Question{$tour}[$q]{'Sources'}."\n\n" 
               if $Question{$tour}[$q]{'Sources'};
	print OUT "Рейтинг:\n".$Question{$tour}[$q]{'Rating'}."\n\n" 
               if $Question{$tour}[$q]{'Rating'};

     }
  }

  close OUT;



}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>