Diff for /loncom/metadata_database/searchcat.pl between versions 1.47 and 1.48

version 1.47, 2003/12/25 04:06:52 version 1.48, 2003/12/25 13:11:56
Line 56  This script also does general database m Line 56  This script also does general database m
 the C<loncapa:metadata> table if it is deprecated.  the C<loncapa:metadata> table if it is deprecated.
   
 This script evaluates dynamic metadata from the authors'  This script evaluates dynamic metadata from the authors'
 F<nohist_resevaldata.db> database file in order to store it in MySQL, as  F<nohist_resevaldata.db> database file in order to store it in MySQL.
 well as to compress the filesize (add up all "count"-type metadata).  
   
 This script is playing an increasingly important role for a loncapa  This script is playing an increasingly important role for a loncapa
 library server.  The proper operation of this script is critical for a smooth  library server.  The proper operation of this script is critical for a smooth
Line 131  sub escape { Line 130  sub escape {
 sub dynamicmeta {  sub dynamicmeta {
     my $url=&declutter(shift);      my $url=&declutter(shift);
     $url=~s/\.meta$//;      $url=~s/\.meta$//;
     my %returnhash=();      my %returnhash=(
       'count' => 0,
       'course' => 0,
       'course_list' => '',
       'avetries' => 0,
       'avetries_list' => '',
       'stdno' => 0,
       'stdno_list' => '',
       'usage' => 0,
       'usage_list' => '',
       'goto' => 0,
       'goto_list' => '',
       'comefrom' => 0,
       'comefrom_list' => '',
       'difficulty' => 0,
       'difficulty_list' => ''
       );
     my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//);      my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//);
     my $prodir=&propath($adomain,$aauthor);      my $prodir=&propath($adomain,$aauthor);
   
Line 187  sub dynamicmeta { Line 202  sub dynamicmeta {
  untie(%evaldata);   untie(%evaldata);
 # transfer gathered data to returnhash, calculate averages where applicable  # transfer gathered data to returnhash, calculate averages where applicable
  while (my $cat=each(%cnt)) {   while (my $cat=each(%cnt)) {
       if ($cnt{$cat} eq 'nan') { next; }
       if ($sum{$cat} eq 'nan') { next; }
     if ($listitems{$cat} eq 'avg') {      if ($listitems{$cat} eq 'avg') {
  $returnhash{$cat}=int(($sum{$cat}/$cnt{$cat})*100.0+0.5)/100.0;   if ($cnt{$cat}) {
       $returnhash{$cat}=int(($sum{$cat}/$cnt{$cat})*100.0+0.5)/100.0;
    } else {
       $returnhash{$cat}='NULL';
    }
     } elsif ($listitems{$cat} eq 'cnt') {      } elsif ($listitems{$cat} eq 'cnt') {
  $returnhash{$cat}=$cnt{$cat};   $returnhash{$cat}=$cnt{$cat};
     } else {      } else {
Line 260  my $dbh; Line 281  my $dbh;
         "course INTEGER UNSIGNED, course_list TEXT, ".          "course INTEGER UNSIGNED, course_list TEXT, ".
         "goto INTEGER UNSIGNED, goto_list TEXT, ".          "goto INTEGER UNSIGNED, goto_list TEXT, ".
         "comefrom INTEGER UNSIGNED, comefrom_list TEXT, ".          "comefrom INTEGER UNSIGNED, comefrom_list TEXT, ".
         "fusage INTEGER UNSIGNED, fusage_list TEXT, ".          "sequsage INTEGER UNSIGNED, sequsage_list TEXT, ".
         "stdno INTEGER UNSIGNED, stdno_list TEXT, ".          "stdno INTEGER UNSIGNED, stdno_list TEXT, ".
  "avetries FLOAT, avetries_list TEXT, ".   "avetries FLOAT, avetries_list TEXT, ".
         "difficulty FLOAT, difficulty_list TEXT, ".          "difficulty FLOAT, difficulty_list TEXT, ".
Line 319  my $insert_sth = $dbh->prepare Line 340  my $insert_sth = $dbh->prepare
      "?,".   # avetries       "?,".   # avetries
      "?,".   # avetries_list       "?,".   # avetries_list
      "?,".   # difficulty       "?,".   # difficulty
      "?,"    # difficulty_list       "?".    # difficulty_list
        ")"
      );       );
   
 foreach my $user (@homeusers) {  foreach my $user (@homeusers) {

Removed from v.1.47  
changed lines
  Added in v.1.48


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