Diff for /db/prgsrc/updateindex.pl between versions 1.8 and 1.12

version 1.8, 2002/11/09 01:46:24 version 1.12, 2008/11/14 11:23:03
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";
   if ($dbh->get_info( 18 )=~/^(5|(4.1))/)  {$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 {
Line 103  MAIN: Line 104  MAIN:
         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 120  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 133  MAIN: Line 139  MAIN:
         $dbh->do("DELETE FROM Tournaments WHERE QuestionsNum=0");          $dbh->do("DELETE FROM Tournaments WHERE QuestionsNum=0");
     }      }
     $dbh->do("INSERT INTO Tournaments      $dbh->do("INSERT INTO Tournaments
                              (Id, Title, ParentId, Type)                                (Id, Title, ParentId, Type,CreatedAt) 
                              VALUES                               VALUES
                              (9999, 'Несортированные турниры', 0,'Г')");                               (9999, 'Несортированные турниры', 0,'Г',NOW())");
   
     $dbh->disconnect;      $dbh->disconnect;
 }  }
Line 146  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");
Line 183  sub CheckId { Line 192  sub CheckId {
   
     } else {      } else {
         $sth = $dbh->prepare("INSERT INTO Tournaments          $sth = $dbh->prepare("INSERT INTO Tournaments
                              (Title, ParentId, Type)                                (Title, ParentId, Type,CreatedAt) 
                              VALUES                               VALUES
                              ($title, $ParentId,$type)");                               ($title, $ParentId,$type,NOW())");
     }      }
     $sth->execute or die $dbh->errstr;      $sth->execute or die $dbh->errstr;
     if (!$Id) {      if (!$Id) {

Removed from v.1.8  
changed lines
  Added in v.1.12


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