koha-cvs
[Top][All Lists]
Advanced

[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 ----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]