[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/z3950 processz3950queue,1.2,1.3
From: |
Paul POULAIN |
Subject: |
[Koha-cvs] CVS: koha/z3950 processz3950queue,1.2,1.3 |
Date: |
Tue, 29 Apr 2003 01:10:17 -0700 |
Update of /cvsroot/koha/koha/z3950
In directory sc8-pr-cvs1:/tmp/cvs-serv10602/z3950
Modified Files:
processz3950queue
Log Message:
z3950 support is coming...
* adding a syntax column in z3950 table = this column will say wether the z3950
must be called with PerferedRecordsyntax => USMARC or PerferedRecordsyntax =>
UNIMARC. I tried some french UNIMARC z3950 servers, and some only send USMARC,
some only UNIMARC, some can answer with both.
Note this is a 1st draft. More to follow (today ? I hope).
Index: processz3950queue
===================================================================
RCS file: /cvsroot/koha/koha/z3950/processz3950queue,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** processz3950queue 22 Apr 2003 12:22:52 -0000 1.2
--- processz3950queue 29 Apr 2003 08:09:42 -0000 1.3
***************
*** 5,9 ****
use C4::Context;
use DBI;
! #use strict;
use C4::Biblio;
use C4::Output;
--- 5,9 ----
use C4::Context;
use DBI;
! use strict;
use C4::Biblio;
use C4::Output;
***************
*** 20,24 ****
}
# Get real apacheuser from koha.conf or reparsing httpd.conf
! my $apacheuser='www-data';
my $uid=0;
unless ($uid = (getpwnam($apacheuser))[2]) {
--- 20,24 ----
}
# Get real apacheuser from koha.conf or reparsing httpd.conf
! my $apacheuser='paul';
my $uid=0;
unless ($uid = (getpwnam($apacheuser))[2]) {
***************
*** 28,33 ****
$<=$uid;
}
-
-
my $dbh = C4::Context->dbh;
--- 28,31 ----
***************
*** 53,58 ****
if ((time-$lastrun)>5) {
print "starting loop\n";
! if ($checkqueue) {
! print "checkqueue=1\n";
$checkqueue=0;
my $sth=$dbh->prepare("select id,term,type,servers from
z3950queue order by id");
--- 51,55 ----
if ((time-$lastrun)>5) {
print "starting loop\n";
! if ($checkqueue) { # everytime a SIG{HUP} is recieved
$checkqueue=0;
my $sth=$dbh->prepare("select id,term,type,servers from
z3950queue order by id");
***************
*** 61,65 ****
if ($forkcounter<12) {
my $now=time();
! $stk=$dbh->prepare("select
id,server,startdate,enddate,numrecords,active from z3950results where
queryid=$id");
($stk->execute) || (next);
my %serverdone;
--- 58,62 ----
if ($forkcounter<12) {
my $now=time();
! my $stk=$dbh->prepare("select
id,server,startdate,enddate,numrecords,active from z3950results where
queryid=$id");
($stk->execute) || (next);
my %serverdone;
***************
*** 92,99 ****
}
$term='"'.$term.'"';
! $query="address@hidden $attr $term";
my $totalrecords=0;
my $serverinfo;
my $stillprocessing=0;
foreach $serverinfo (split(/\s+/,
$servers)) {
(next) if
($serverdone{$serverinfo} == 1);
--- 89,97 ----
}
$term='"'.$term.'"';
! my $query="address@hidden $attr $term";
my $totalrecords=0;
my $serverinfo;
my $stillprocessing=0;
+ my $globalname;
foreach $serverinfo (split(/\s+/,
$servers)) {
(next) if
($serverdone{$serverinfo} == 1);
***************
*** 102,110 ****
$forkcounter++;
} else {
- #$sth->finish;
- #$sti->finish;
- #$dbh->disconnect;
my $dbi =
C4::Context->dbh;
my ($name, $server,
$database, $user, $password) = split(/\//, $serverinfo, 5);
$server=~/(.*)\:(\d+)/;
my $servername=$1;
--- 100,106 ----
$forkcounter++;
} else {
my $dbi =
C4::Context->dbh;
my ($name, $server,
$database, $user, $password) = split(/\//, $serverinfo, 5);
+ $globalname=$name;
$server=~/(.*)\:(\d+)/;
my $servername=$1;
***************
*** 118,129 ****
$stj->execute;
($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'};
}
}
--- 114,128 ----
$stj->execute;
($resultsid) =
$stj->fetchrow;
+ $stj->finish;
} else {
my
$stj=$dbi->prepare("select id from z3950results where server=$q_serverinfo and
queryid=$id");
$stj->execute;
($resultsid) =
$stj->fetchrow;
+ $stj->finish;
unless
($resultsid) {
!
$stj=$dbi->prepare("insert into z3950results (server, queryid, startdate)
values ($q_serverinfo, $id, $now)");
$stj->execute;
$resultsid=$dbi->{'mysql_insertid'};
+
$stj->finish;
}
}
***************
*** 149,162 ****
}
if ($noconnection ||
$error) {
} else {
! eval {
$conn->option(preferredRecordSyntax => Net::Z3950::RecordSyntax::USMARC);};
! if ($@) {
! print
"ERROR: address@hidden";
! } else {
! print
"Q: $query\n";
my
$rs=$conn->search($query);
! pe();
my
$numresults=$rs->size();
! pe();
my $i;
my
$result='';
--- 148,162 ----
}
if ($noconnection ||
$error) {
+ warn "no
connection at $globalname ";
} else {
! eval {
$conn->option(preferredRecordSyntax => Net::Z3950::RecordSyntax::USMARC);};
! if ($@) {
! print
"$globalname ERROR: address@hidden";
! } else {
! print
"Q: $query\n";
my
$rs=$conn->search($query);
! pe();
my
$numresults=$rs->size();
! pe();
my $i;
my
$result='';
***************
*** 164,169 ****
for
($i=1; $i<=(($numresults<80) ? ($numresults) : (80)); $i++) {
my $rec=$rs->record($i);
!
my $marcdata=$rec->rawdata();
$result.=$marcdata;
}
my
$scantimerend=time();
--- 164,172 ----
for
($i=1; $i<=(($numresults<80) ? ($numresults) : (80)); $i++) {
my $rec=$rs->record($i);
!
my $marcdata=$rec->render();
!
my $marcrecord = MARC::File::USMARC::decode($rec->render());
!
warn "$globalname ==> ".$marcrecord->as_formatted();
$result.=$marcdata;
+
my ($notmarcrecord,$alreadyindb,$alreadyinfarm,$imported) =
ImportBreeding($marcdata,1,"Z3950-$globalname");
}
my
$scantimerend=time();
***************
*** 173,186 ****
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;
!
ImportBreeding($q_result,1,"Z3950");
my
$counter=0;
while
($counter<60 && $numrecords<$numresults) {
--- 176,193 ----
if
($elapsed) {
my $speed=int($numresults/$elapsed*100)/100;
!
print "$globalname SPEED: $speed $server done $numrecords\n";
}
my
$q_result=$dbi->quote($result);
($q_result) || ($q_result='""');
$now=time();
! if
($numresults >0) {
!
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;
! } else
{ # no results...
!
my $task="update z3950results set
numrecords=$numresults,numdownloaded=$numrecords,highestseen=0,results='',enddate=$now
where id=$resultsid";
!
my $stj=$dbi->prepare($task);
!
$stj->execute;
! }
my
$counter=0;
while
($counter<60 && $numrecords<$numresults) {
***************
*** 215,219 ****
sleep 5;
}
! }
}
# FIXME - There's
already a $stj in this scope
--- 222,226 ----
sleep 5;
}
! }
}
# FIXME - There's
already a $stj in this scope
***************
*** 224,228 ****
exit;
sub pe {
! return 0;
my $code=$conn->errcode();
my $msg=$conn->errmsg();
--- 231,235 ----
exit;
sub pe {
! # return 0;
my $code=$conn->errcode();
my $msg=$conn->errmsg();
***************
*** 233,238 ****
ADDTL: $ai
EOF
! return 0;
! }
}
}
--- 240,245 ----
ADDTL: $ai
EOF
! return 0;
! }
}
}
***************
*** 252,285 ****
}
- # sub getrecord {
- # my $server=shift;
- # my $base=shift;
- # my $query=shift;
- # my $auth=shift;
- # my $id=shift;
- # open (M, "|yaz-client -m yaz-$id.mrc >>yaz.out 2>>yaz.err");
- # select M;
- # $|=1;
- # select STDOUT;
- # ($auth) && ($auth="authentication $auth\n");
- # print M << "EOF";
- # $auth\open $server
- # base $base
- # setnames
- # $query
- # s
- # s
- # s
- # s
- # s
- # s
- # s
- # s
- # s
- # s
- # quit
- # EOF
- # close M;
- # }
sub reap {
$forkcounter--;
--- 259,262 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/z3950 processz3950queue,1.2,1.3,
Paul POULAIN <=