CVS: koha/acqui.simple marcimport.pl,1.5,1.6 processz3950queue,1.2,1.3
Update of /cvsroot/koha/koha/acqui.simple In directory usw-pr-cvs1:/tmp/cvs-serv32238/koha/acqui.simple Modified Files: marcimport.pl processz3950queue Log Message: Changes from a long time ago that I don't even remember anymore. :) Index: marcimport.pl =================================================================== RCS file: /cvsroot/koha/koha/acqui.simple/marcimport.pl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** marcimport.pl 2001/11/06 18:13:59 1.5 --- marcimport.pl 2002/02/01 18:00:28 1.6 *************** *** 829,839 **** ($author) && ($author="by $author"); if ($isbn) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&isbn=$isbn>$title$subtitle $author</a> $donetext<br>\n"; } elsif ($lccn) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&lccn=$lccn>$title$subtitle $author</a> $donetext<br>\n"; } elsif ($issn) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&issn=$issn>$title$subtitle $author</a><br> $donetext\n"; } elsif ($controlnumber) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&controlnumber=$controlnumber>$title $author</a><br> $donetext\n"; } else { print "Error: Contact steve regarding $title by $author<br>\n"; --- 829,839 ---- ($author) && ($author="by $author"); if ($isbn) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&isbn=$isbn>$title $subtitle $author</a> $donetext<br>\n"; } elsif ($lccn) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&lccn=$lccn>$title $subtitle $author</a> $donetext<br>\n"; } elsif ($issn) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&issn=$issn>$title $subtitle $author</a><br> $donetext\n"; } elsif ($controlnumber) { ! print "<li><a href=$ENV{'SCRIPT_NAME'}?file=$file&resultsid=$resultsid&controlnumber=$controlnumber>$title $subtitle $author</a><br> $donetext\n"; } else { print "Error: Contact steve regarding $title by $author<br>\n"; Index: processz3950queue =================================================================== RCS file: /cvsroot/koha/koha/acqui.simple/processz3950queue,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** processz3950queue 2001/11/06 18:13:59 1.2 --- processz3950queue 2002/02/01 18:00:28 1.3 *************** *** 25,29 **** my $now=time(); $stk=$dbh->prepare("select id,server,startdate,enddate,numrecords,active from z3950results where queryid=$id"); ! $stk->execute; my %serverdone; unless ($stk->rows) { --- 25,29 ---- my $now=time(); $stk=$dbh->prepare("select id,server,startdate,enddate,numrecords,active from z3950results where queryid=$id"); ! ($stk->execute) || (next); my %serverdone; unless ($stk->rows) { *************** *** 82,88 **** ($resultsid) = $stj->fetchrow; } else { ! my $stj=$dbi->prepare("insert into z3950results (server, queryid, startdate) values ($q_serverinfo, $id, $now)"); $stj->execute; ! $resultsid=$dbi->{'mysql_insertid'}; } my $stj=$dbh->prepare("update z3950results set active=1 where id=$resultsid"); --- 82,93 ---- ($resultsid) = $stj->fetchrow; } else { ! my $stj=$dbi->prepare("select id from z3950results where server=$q_serverinfo and queryid=$id"); $stj->execute; ! ($resultsid) = $stj->fetchrow; ! unless ($resultsid) { ! my $stj=$dbi->prepare("insert into z3950results (server, queryid, startdate) values ($q_serverinfo, $id, $now)"); ! $stj->execute; ! $resultsid=$dbi->{'mysql_insertid'}; ! } } my $stj=$dbh->prepare("update z3950results set active=1 where id=$resultsid"); *************** *** 90,168 **** my $conn; my $noconnection=0; if ($user) { eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database, user => $user, password => $password); }; if ($@) { $noconnection=1; } - pe(); } else { eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database); }; if ($@) { $noconnection=1; } - pe(); } ! if ($noconnection) { } else { my $rs=$conn->search($query); - pe(); - $rs->option(preferredRecordSyntax => Net::Z3950::RecordSyntax::USMARC); - pe(); - my $numresults=$rs->size(); pe(); ! my $i; ! my $result=''; ! my $scantimerstart=time(); ! for ($i=1; $i<=(($numresults<80) ? ($numresults) : (80)); $i++) { ! my $rec=$rs->record($i); ! my $marcdata=$rec->rawdata(); ! $result.=$marcdata; ! } ! my $scantimerend=time(); ! my $numrecords; ! ($numresults<80) ? ($numrecords=$numresults) : ($numrecords=80); ! my $elapsed=$scantimerend-$scantimerstart; ! if ($elapsed) { ! my $speed=int($numresults/$elapsed*100)/100; ! print " SPEED: $speed $server done $numrecords\n"; ! } ! my $q_result=$dbi->quote($result); ! ($q_result) || ($q_result='""'); ! $now=time(); ! my $task="update z3950results set numrecords=$numresults,numdownloaded=$numrecords,highestseen=0,results=$q_result,enddate=$now where id=$resultsid"; ! my $stj=$dbi->prepare($task); ! $stj->execute; ! my $counter=0; ! while ($counter<60 && $numrecords<$numresults) { ! $counter++; ! my $stj=$dbi->prepare("select highestseen from z3950results where id=$resultsid"); $stj->execute; ! my ($highestseen) = $stj->fetchrow; ! if ($highestseen>($numrecords-30)) { ! $counter=0; ! print " $server rescanning\n"; ! my $scantimerstart=time(); ! for ($i=$numrecords+1; $i<=(($numresults<($numrecords+40)) ? ($numresults) : ($numrecords+40)); $i++) { ! my $rec=$rs->record($i); ! my $marcdata=$rec->rawdata(); ! $result.=$marcdata; ! } ! my $scantimerend=time(); ! ($numresults<$numrecords+40) ? ($numrecords=$numresults) : ($numrecords=$numrecords+40); ! my $elapsed=$scantimerend-$scantimerstart; ! if ($elapsed) { ! my $speed=int($numresults/$elapsed*100)/100; ! print " SPEED: $speed $server done $numrecords\n"; ! } ! ! my $q_result=$dbi->quote($result); ! ($q_result) || ($q_result='""'); ! $now=time(); ! my $task="update z3950results set numdownloaded=$numrecords,results=$q_result where id=$resultsid"; ! my $stj=$dbi->prepare($task); $stj->execute; } - sleep 5; } } --- 95,181 ---- my $conn; my $noconnection=0; + my $error=0; if ($user) { eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database, user => $user, password => $password); }; if ($@) { $noconnection=1; + } else { + $error=pe(); } } else { eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database); }; if ($@) { $noconnection=1; + } else { + $error=pe(); } } ! if ($noconnection || $error) { } else { + print "Q: $query\n"; my $rs=$conn->search($query); pe(); ! eval { $rs->option(preferredRecordSyntax => Net::Z3950::RecordSyntax::USMARC);}; ! if ($@) { ! print "ERROR: $@\n"; ! } else { ! pe(); ! my $numresults=$rs->size(); ! pe(); ! my $i; ! my $result=''; ! my $scantimerstart=time(); ! for ($i=1; $i<=(($numresults<80) ? ($numresults) : (80)); $i++) { ! my $rec=$rs->record($i); ! my $marcdata=$rec->rawdata(); ! $result.=$marcdata; ! } ! my $scantimerend=time(); ! my $numrecords; ! ($numresults<80) ? ($numrecords=$numresults) : ($numrecords=80); ! my $elapsed=$scantimerend-$scantimerstart; ! if ($elapsed) { ! my $speed=int($numresults/$elapsed*100)/100; ! print " SPEED: $speed $server done $numrecords\n"; ! } ! my $q_result=$dbi->quote($result); ! ($q_result) || ($q_result='""'); ! $now=time(); ! my $task="update z3950results set numrecords=$numresults,numdownloaded=$numrecords,highestseen=0,results=$q_result,enddate=$now where id=$resultsid"; ! my $stj=$dbi->prepare($task); $stj->execute; ! my $counter=0; ! while ($counter<60 && $numrecords<$numresults) { ! $counter++; ! my $stj=$dbi->prepare("select highestseen from z3950results where id=$resultsid"); $stj->execute; + my ($highestseen) = $stj->fetchrow; + if ($highestseen>($numrecords-30)) { + $counter=0; + print " $server rescanning\n"; + my $scantimerstart=time(); + for ($i=$numrecords+1; $i<=(($numresults<($numrecords+40)) ? ($numresults) : ($numrecords+40)); $i++) { + my $rec=$rs->record($i); + my $marcdata=$rec->rawdata(); + $result.=$marcdata; + } + my $scantimerend=time(); + ($numresults<$numrecords+40) ? ($numrecords=$numresults) : ($numrecords=$numrecords+40); + my $elapsed=$scantimerend-$scantimerstart; + if ($elapsed) { + my $speed=int($numresults/$elapsed*100)/100; + print " SPEED: $speed $server done $numrecords\n"; + } + + my $q_result=$dbi->quote($result); + ($q_result) || ($q_result='""'); + $now=time(); + my $task="update z3950results set numdownloaded=$numrecords,results=$q_result where id=$resultsid"; + my $stj=$dbi->prepare($task); + $stj->execute; + } + sleep 5; } } } *************** *** 174,178 **** exit; sub pe { ! (return) unless ($code); my $code=$conn->errcode(); my $msg=$conn->errmsg(); --- 187,191 ---- exit; sub pe { ! return 0; my $code=$conn->errcode(); my $msg=$conn->errmsg(); *************** *** 184,187 **** --- 197,204 ---- EOF + # if ($msg =~/not yet available/) { + # return 1; + # } + return 0; } } *************** *** 204,208 **** $lastrun=time(); } ! sleep 1; } --- 221,225 ---- $lastrun=time(); } ! sleep 10; }
participants (1)
-
Steve Tonnesen