Diff for /db/prgsrc/updateindex.pl between versions 1.7 and 1.10

version 1.7, 2000/11/11 00:35:39 version 1.10, 2005/12/10 00:03:55
Line 88  MAIN: Line 88  MAIN:
         $REMOVE=1;          $REMOVE=1;
     }      }
     my($source) = $opt_i;      my($source) = $opt_i;
       my $champ;
     my($depth, @depthId);      my($depth, @depthId);
     my $filename;      my $filename;
     my($dbh) = DBI->connect("DBI:mysql:chgk", "piataev", "")       my($dbh) = DBI->connect("DBI:mysql:chgk", "piataev", "") 
         or die "Can't connect to DB chgk\n";          or die "Can't connect to DB chgk\n";
           $dbh->do("SET NAMES 'koi8r'");
     if ($source) {      if ($source) {
         open INFO, $source or die "Can't open input file: $!\n";          open INFO, $source or die "Can't open input file: $!\n";
     } else {      } else {
         *INFO=*STDIN;          *INFO=*STDIN;
     }      }
   
     while (<INFO>) {      while (<INFO>) {
         chomp;          chomp;
         s/ //;          s/ //;
         next if (/^\s*$/);          next if (/^\s*$/);
         if (s/^(\S+) *//) { # File found          if (s/^(\S+\.txt) *//) { # File found
             $filename = $1;              $filename = $1;
             $depth = -1;              $depth = -1;
               $champ=1;
         } else {  # Group found          } else {  # Group found
             $filename = '';              if (s/^(\S+)//)
                   { $filename = $1;}      
               else 
                   {$filename = ''}
             $depth = -2;              $depth = -2;
               $champ=0;
         }          }
         s/^(\t*)//;          s/^(\t*)//;
         $depth += length($1);          $depth += length($1);
Line 119  MAIN: Line 126  MAIN:
         my $title = $_;          my $title = $_;
         my $ParentId = ($depth) ? $depthId[$depth - 1] : 0;          my $ParentId = ($depth) ? $depthId[$depth - 1] : 0;
         my $Id = CheckId($dbh,$title,$ParentId,$decision,$filename);          my $Id = CheckId($dbh,$title,$ParentId,$decision,$filename);
         if (!$Id  || $filename) {          if (!$Id  || $champ) {
             next;              next;
         }          }
         $depthId[$depth] = $Id;          $depthId[$depth] = $Id;
Line 131  MAIN: Line 138  MAIN:
         print STDERR "Removing empty tours.";          print STDERR "Removing empty tours.";
         $dbh->do("DELETE FROM Tournaments WHERE QuestionsNum=0");          $dbh->do("DELETE FROM Tournaments WHERE QuestionsNum=0");
     }      }
       $dbh->do("INSERT INTO Tournaments
                                (Id, Title, ParentId, Type) 
                                VALUES
                                (9999, 'Несортированные турниры', 0,'Г')");
   
     $dbh->disconnect;      $dbh->disconnect;
 }  }
   
Line 140  sub CheckId { Line 152  sub CheckId {
     my $type;      my $type;
     my $key;      my $key;
     my $value;      my $value;
     my $Id = 0;      my $Id = 0; 
     if ($filename) {      if ($filename && $filename=~/\.txt/) {
         $type=$dbh->quote('Ч');          $type=$dbh->quote('Ч');
         $key = "FileName";      }   else {$type=$dbh->quote('Г');}
         $value = $dbh->quote($filename);      if ($filename)
       {
           $key = "FileName";
           $value = $dbh->quote($filename);
     } else {      } else {
         $type=$dbh->quote('Г');          $key = "Title";
         $key = "Title";          $value = $dbh->quote($title);
         $value = $dbh->quote($title);  
     }      }
   
     $title=$dbh->quote($title);          $title=$dbh->quote($title);    
     my $sth = $dbh->prepare("SELECT Id FROM Tournaments       my $sth = $dbh->prepare("SELECT Id FROM Tournaments 
                              WHERE $key=$value");                               WHERE $key=$value");

Removed from v.1.7  
changed lines
  Added in v.1.10


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