'File::Temp' => 0,
'List::Util' => 0,
'URI::Escape' => 0,
- 'LWP::Simple' => 0,
+ 'LWP' => 0,
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'WebPAC-* pod2html Makefile tags' },
use HyperEstraier;
use Text::Iconv;
use Data::Dumper;
-use LWP::Simple;
+use LWP;
use URI::Escape;
=head1 NAME
=head1 VERSION
-Version 0.02
+Version 0.03
=cut
-our $VERSION = '0.02';
+our $VERSION = '0.03';
=head1 SYNOPSIS
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});
$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',
$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
=head1 VERSION
-Version 0.03
+Version 0.04
=cut
-our $VERSION = '0.03';
+our $VERSION = '0.04';
=head1 SYNOPSIS
Connect to Hyper Estraier index using HTTP
my $est = new WebPAC::Search::Estraier(
- url => 'http://localhost:1978/node/webpac2',
+ masterurl => 'http://localhost:1978/',
+ database => 'webpac2',
user => 'admin',
passwd => 'admin',
encoding => 'iso-8859-2',
=over 4
-=item url
+=item maseterurl
URI to C<estmaster> node
+=item database
+
+name of C<estmaster> node
+
=item user
C<estmaster> user with read rights
my $log = $self->_get_logger;
- foreach my $p (qw/url user passwd/) {
+ foreach my $p (qw/masterurl user passwd/) {
$log->logdie("need $p") unless ($self->{$p});
}
+ my $url = $self->{masterurl} . '/node/' . $self->{database};
+ $url =~ s#//#/#g;
+ $self->{url} = $url;
+
$log->info("opening Hyper Estraier index $self->{'url'} as $self->{'user'}");
$self->{'db'} = HyperEstraier::Node->new($self->{'url'});
use strict;
-use Test::More tests => 6;
+use Test::More tests => 7;
use Test::Exception;
use Cwd qw/abs_path/;
use File::Temp qw/tempdir/;
use blib;
BEGIN {
+use_ok( 'WebPAC::Output::Estraier' );
use_ok( 'WebPAC::Search::Estraier' );
use_ok( 'Log::Log4perl' );
}
Log::Log4perl::init('./conf/log.conf');
ok(my $log = Log::Log4perl->get_logger('WebPAC.test'), "get_logger");
-ok(my $est = new WebPAC::Search::Estraier(
- url => 'http://localhost:1978/node/webpac2',
+my $config = {
+ masterurl => 'http://localhost:1978/',
user => 'admin',
passwd => 'admin',
+ database => 'webpac2test',
encoding => 'iso-8859-2',
log => $log,
debug => 1,
-), "new");
+};
+
+ok(my $est = new WebPAC::Output::Estraier( %{ $config } ), "new WebPAC::Output::Estraier");
+
+ok(my $list = $est->est_master( action => 'nodelist' ), "nodelist");
+
+like($list , qr/$config->{database}/, "$list has $config->{database}");
+
+ok($est = new WebPAC::Search::Estraier( %{ $config } ), "new WebPAC::Search::Estraier");
my $query = 'ivan';
my $max = 3;