--- loncom/metadata_database/searchcat.pl 2003/06/25 14:42:00 1.35 +++ loncom/metadata_database/searchcat.pl 2003/09/26 00:23:09 1.40 @@ -2,7 +2,7 @@ # The LearningOnline Network # searchcat.pl "Search Catalog" batch script # -# $Id: searchcat.pl,v 1.35 2003/06/25 14:42:00 www Exp $ +# $Id: searchcat.pl,v 1.40 2003/09/26 00:23:09 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -76,7 +76,34 @@ use POSIX qw(strftime mktime); my @metalist; +$simplestatus=''; +my %countext=(); +sub writesimple { + open(SMP,'>/home/httpd/html/lon-status/mysql.txt'); + print SMP $simplestatus."\n"; + 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 sub unescape { @@ -207,6 +234,7 @@ if ($wwwid!=$<) { open(LOG,'>'.$perlvar{'lonDaemons'}.'/logs/searchcat.log'); print LOG '==== Searchcat Run '.localtime()."====\n\n"; +$simplestatus='time='.time.'&'; my $dbh; # ------------------------------------- Make sure that database can be accessed { @@ -214,8 +242,11 @@ my $dbh; $dbh = DBI->connect("DBI:mysql:loncapa","www",$perlvar{'lonSqlAccess'},{ RaiseError =>0,PrintError=>0}) ) { print LOG "Cannot connect to database!\n"; + $simplestatus.='mysql=defunct'; + &writesimple(); exit; } + my $make_metadata_table = "CREATE TABLE IF NOT EXISTS metadata (". "title TEXT, author TEXT, subject TEXT, url TEXT, keywords TEXT, ". "version TEXT, notes TEXT, abstract TEXT, mime TEXT, language TEXT, ". @@ -276,9 +307,12 @@ foreach my $user (@homeusers) { foreach my $m (@metalist) { print LOG "- ".$m."\n"; my $ref=&metadata($m); + if ($ref->{'obsolete'}) { print LOG "obsolete\n"; next; } + if ($ref->{'copyright'} eq 'private') { print LOG "private\n"; next; } my $m2='/res/'.&declutter($m); $m2=~s/\.meta$//; - &dynamicmeta($m2); +# &dynamicmeta($m2); + &count($m2); $delete_sth->execute($m2); $insert_sth->execute($ref->{'title'}, $ref->{'author'}, @@ -305,13 +339,35 @@ foreach my $user (@homeusers) { # ... not yet implemented # ------------------------------------------- Copy over the new db-files - system('mv '.$prodir.'/nohist_new_resevaldata.db '. - $prodir.'/nohist_resevaldata.db'); + # + # Check the size of nohist_new_resevaldata.db compared to + # nohist_resevaldata.db +# my @stat_result = stat($prodir.'/nohist_new_resevaldata.db'); +# my $new_size = $stat_result[7]; +# @stat_result = stat($prodir.'/nohist_resevaldata.db'); +# my $old_size = $stat_result[7]; +# if ($old_size) { +# 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 $dbh->disconnect; print LOG "\n==== Searchcat completed ".localtime()." ====\n"; close(LOG); +&writesimple(); +&writecount(); exit 0;