Diff for /loncom/metadata_database/searchcat.pl between versions 1.37 and 1.43

version 1.37, 2003/08/08 12:38:00 version 1.43, 2003/10/08 19:38:41
Line 77  use POSIX qw(strftime mktime); Line 77  use POSIX qw(strftime mktime);
 my @metalist;  my @metalist;
   
 $simplestatus='';  $simplestatus='';
   my %countext=();
   
 sub writesimple {  sub writesimple {
     open(SMP,'>/home/httpd/html/lon-status/mysql.txt');      open(SMP,'>/home/httpd/html/lon-status/mysql.txt');
Line 84  sub writesimple { Line 85  sub writesimple {
     close(SMP);      close(SMP);
 }  }
   
   sub writecount {
       open(RSMP,'>/home/httpd/html/lon-status/rescount.txt');
       foreach (keys %countext) {
    print RSMP $_.'='.$countext{$_}.'&';
       }
       print RSMP 'time='.time."\n";
       close(RSMP);
   }
   
   sub count {
       my $file=shift;
       $file=~/\.(\w+)$/;
       my $ext=lc($1);
       if (defined($countext{$ext})) {
    $countext{$ext}++;
       } else {
    $countext{$ext}=1;
       }
   }
 # ----------------------------------------------------- Un-Escape Special Chars  # ----------------------------------------------------- Un-Escape Special Chars
   
 sub unescape {  sub unescape {
Line 118  sub dynamicmeta { Line 138  sub dynamicmeta {
        my %cnt=();         my %cnt=();
        my %listitems=('count'        => 'add',         my %listitems=('count'        => 'add',
                       'course'       => 'add',                        'course'       => 'add',
         'goto'         => 'add',
         'comefrom'     => 'add',
                       'avetries'     => 'avg',                        'avetries'     => 'avg',
                       'stdno'        => 'add',                        'stdno'        => 'add',
                       'difficulty'   => 'avg',                        'difficulty'   => 'avg',
Line 132  sub dynamicmeta { Line 154  sub dynamicmeta {
        my $regexp=$url;         my $regexp=$url;
        $regexp=~s/(\W)/\\$1/g;         $regexp=~s/(\W)/\\$1/g;
        $regexp='___'.$regexp.'___([a-z]+)$';         $regexp='___'.$regexp.'___([a-z]+)$';
        foreach (keys %evaldata) {         while (my ($esckey,$value)=each %evaldata) {
  my $key=&unescape($_);   $key=&unescape($esckey);
  if ($key=~/$regexp/) {   if ($key=~/$regexp/) {
     my $ctype=$1;      my $ctype=$1;
             if (defined($cnt{$ctype})) {               if (defined($cnt{$ctype})) { 
Line 143  sub dynamicmeta { Line 165  sub dynamicmeta {
             }              }
             unless ($listitems{$ctype} eq 'app') {              unless ($listitems{$ctype} eq 'app') {
                if (defined($sum{$ctype})) {                 if (defined($sum{$ctype})) {
                   $sum{$ctype}+=$evaldata{$_};                    $sum{$ctype}+=$value;
           } else {            } else {
                   $sum{$ctype}=$evaldata{$_};                    $sum{$ctype}=$value;
        }         }
             } else {              } else {
                if (defined($sum{$ctype})) {                 if (defined($sum{$ctype})) {
                   if ($evaldata{$_}) {                    if ($value) {
                      $sum{$ctype}.='<hr>'.$evaldata{$_};                       $sum{$ctype}.='<hr>'.$value;
           }            }
         } else {          } else {
              $sum{$ctype}=''.$evaldata{$_};               $sum{$ctype}=''.$value;
        }         }
     }      }
     if ($ctype ne 'count') {      if ($ctype ne 'count') {
        $newevaldata{$_}=$evaldata{$_};         $newevaldata{$esckey}=$value;
    }     }
  }   }
       }        }
Line 290  foreach my $user (@homeusers) { Line 312  foreach my $user (@homeusers) {
         my $m2='/res/'.&declutter($m);          my $m2='/res/'.&declutter($m);
         $m2=~s/\.meta$//;          $m2=~s/\.meta$//;
         &dynamicmeta($m2);          &dynamicmeta($m2);
     if ($ref->{'obsolete'}) { print LOG "obsolete\n"; next; }
    if ($ref->{'copyright'} eq 'private') { print LOG "private\n"; next; }
    &count($m2);
         $delete_sth->execute($m2);          $delete_sth->execute($m2);
         $insert_sth->execute($ref->{'title'},          $insert_sth->execute($ref->{'title'},
                              $ref->{'author'},                               $ref->{'author'},
Line 317  foreach my $user (@homeusers) { Line 342  foreach my $user (@homeusers) {
                   
     # ------------------------------------------- Copy over the new db-files      # ------------------------------------------- Copy over the new db-files
     #      #
     # Check the size of nohist_new_resevaldata.db compared to   
     # nohist_resevaldata.db      system('mv '.$prodir.'/nohist_new_resevaldata.db '.
     my @stat_result = stat($prodir.'/nohist_new_resevaldata.db');     $prodir.'/nohist_resevaldata.db');
     my $new_size = $stat_result[7];  
     @stat_result = stat($prodir.'/nohist_resevaldata.db');  
     my $old_size = $stat_result[7];  
     if ($new_size/$old_size > 0.15 ) {  
         system('mv '.$prodir.'/nohist_new_resevaldata.db '.  
                $prodir.'/nohist_resevaldata.db');  
     } else {  
         print LOG "Size of '$user' old nohist_reseval: $old_size ".  
             "Size of new: $new_size.  Not overwriting.\n";  
         my $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";  
         my $subj="LON: $perlvar{'lonHostID'} searchcat.pl $user reseval ".  
             "modification error.";  
         system("echo ".  
                "'See /home/httpd/perl/logs/searchcat.txt for information.' ".  
                "| mailto $emailto -s '$subj' > /dev/null");  
     }  
           
 }  }
 # --------------------------------------------------- Close database connection  # --------------------------------------------------- Close database connection
 $dbh->disconnect;  $dbh->disconnect;
 print LOG "\n==== Searchcat completed ".localtime()." ====\n";  print LOG "\n==== Searchcat completed ".localtime()." ====\n";
 close(LOG);  close(LOG);
 &writesimple();  &writesimple();
   &writecount();
 exit 0;  exit 0;
   
   

Removed from v.1.37  
changed lines
  Added in v.1.43


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