r11523@llin: dpavlin | 2005-12-05 01:22:00 +0100
[webpac2] / lib / WebPAC / Output / Estraier.pm
index 83eae34..4e40f2b 100644 (file)
@@ -8,7 +8,7 @@ use base qw/WebPAC::Common/;
 use HyperEstraier;
 use Text::Iconv;
 use Data::Dumper;
-use LWP::Simple;
+use LWP;
 use URI::Escape;
 
 =head1 NAME
@@ -17,11 +17,11 @@ WebPAC::Output::Estraier - Create Hyper Estraier full text index
 
 =head1 VERSION
 
-Version 0.02
+Version 0.03
 
 =cut
 
-our $VERSION = '0.02';
+our $VERSION = '0.03';
 
 =head1 SYNOPSIS
 
@@ -81,7 +81,7 @@ sub new {
 
        my $log = $self->_get_logger;
 
-       $log->debug("self: ", sub { Dumper($self) });
+       #$log->debug("self: ", sub { Dumper($self) });
 
        foreach my $p (qw/masterurl user passwd database/) {
                $log->logdie("need $p") unless ($self->{$p});
@@ -93,9 +93,11 @@ sub new {
 
        $log->info("opening Hyper Estraier index $self->{url}");
 
-       my @nodes = $self->est_master( action => 'nodelist' );
+       my $nodes = $self->est_master( action => 'nodelist' );
 
-       if (! grep(/$self->{database}/, @nodes)) {
+       $log->debug("nodes found: $nodes");
+
+       if ($nodes !~ m/^$self->{database}\t/sm) {
                $log->info("creating index $url");
                $self->est_master(
                        action => 'nodeadd',
@@ -234,14 +236,23 @@ sub est_master {
 
        $log->debug("calling $url");
 
-       my $tsv = get($url);
+       if (! $self->{_master_ua}) {
+               $self->{_master_ua} = LWP::UserAgent->new( ) || $log->logdie("can't create LWP::UserAgent: $!");
+               $self->{_master_ua}->credentials('localhost:1978','Super User', $self->{user} => $self->{passwd});
+       }
+
+       my $res = $self->{_master_ua}->get($url);
 
-       if (! $tsv) {
-               $log->warn("unable to call $url");
+       if ($res->is_success) {
+               #$log->debug( $res->content );
+               return split(/\n/, $res->content) if wantarray;
+               return $res->content;
+       } else {
+               $log->warn("unable to call $url: " . $res->status_line);
+               #$log->debug(Dumper($res, $self->{'_master_ua'}));
                return;
        }
 
-       return split(/\n/, $tsv);
 }
 
 =head1 AUTHOR