/[webpac2]/trunk/lib/WebPAC/Output/Estraier.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/WebPAC/Output/Estraier.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 210 by dpavlin, Mon Dec 5 17:47:04 2005 UTC revision 212 by dpavlin, Mon Dec 5 17:47:16 2005 UTC
# Line 8  use base qw/WebPAC::Common/; Line 8  use base qw/WebPAC::Common/;
8  use HyperEstraier;  use HyperEstraier;
9  use Text::Iconv;  use Text::Iconv;
10  use Data::Dumper;  use Data::Dumper;
11  use LWP::Simple;  use LWP;
12  use URI::Escape;  use URI::Escape;
13    
14  =head1 NAME  =head1 NAME
# Line 17  WebPAC::Output::Estraier - Create Hyper Line 17  WebPAC::Output::Estraier - Create Hyper
17    
18  =head1 VERSION  =head1 VERSION
19    
20  Version 0.02  Version 0.03
21    
22  =cut  =cut
23    
24  our $VERSION = '0.02';  our $VERSION = '0.03';
25    
26  =head1 SYNOPSIS  =head1 SYNOPSIS
27    
# Line 81  sub new { Line 81  sub new {
81    
82          my $log = $self->_get_logger;          my $log = $self->_get_logger;
83    
84          $log->debug("self: ", sub { Dumper($self) });          #$log->debug("self: ", sub { Dumper($self) });
85    
86          foreach my $p (qw/masterurl user passwd database/) {          foreach my $p (qw/masterurl user passwd database/) {
87                  $log->logdie("need $p") unless ($self->{$p});                  $log->logdie("need $p") unless ($self->{$p});
88          }          }
89    
90          my $url = $self->{masterurl} . '/node/' . $self->{database};          my $url = $self->{masterurl} . '/node/' . $self->{database};
         $url =~ s#//#/#g;  
91          $self->{url} = $url;          $self->{url} = $url;
92    
93          $log->info("opening Hyper Estraier index $self->{url}");          $log->info("opening Hyper Estraier index $self->{url}");
94    
95          my @nodes = $self->est_master( action => 'nodelist' );          my $nodes = $self->est_master( action => 'nodelist' );
96    
97          if (! grep(/$self->{database}/, @nodes)) {          $log->debug("nodes found: $nodes");
98    
99            if ($nodes !~ m/^$self->{database}\t/sm) {
100                  $log->info("creating index $url");                  $log->info("creating index $url");
101                  $self->est_master(                  $self->est_master(
102                          action => 'nodeadd',                          action => 'nodeadd',
# Line 125  Adds one entry to database. Line 126  Adds one entry to database.
126          id => 42,          id => 42,
127          ds => $ds,          ds => $ds,
128          type => 'display',          type => 'display',
         url_prefix => 'database name',  
129          text => 'optional text from which snippet is created',          text => 'optional text from which snippet is created',
130    );    );
131    
132  This function will create  entries in index using following URI format:  This function will create  entries in index using following URI format:
133    
134    C<file:///database%20name/000>    C<file:///type/database%20name/000>
135    
136  Each tag in C<data_structure> with specified C<type> will create one  Each tag in C<data_structure> with specified C<type> will create one
137  attribute and corresponding hidden text (used for search).  attribute and corresponding hidden text (used for search).
# Line 193  sub add { Line 193  sub add {
193          }          }
194    
195          $log->debug("adding ", sub { $doc->dump_draft } );          $log->debug("adding ", sub { $doc->dump_draft } );
196          $self->{'db'}->put_doc($doc) || $log->logdie("can't add document $uri to index");          $self->{'db'}->put_doc($doc) || $log->logdie("can't add document $uri to node " . $self->{url} . " status: " . $self->{db}->status());
197    
198          return 1;          return 1;
199  }  }
# Line 234  sub est_master { Line 234  sub est_master {
234    
235          $log->debug("calling $url");          $log->debug("calling $url");
236    
237          my $tsv = get($url);          if (! $self->{_master_ua}) {
238                    $self->{_master_ua} = LWP::UserAgent->new( ) || $log->logdie("can't create LWP::UserAgent: $!");
239                    $self->{_master_ua}->credentials('localhost:1978','Super User', $self->{user} => $self->{passwd});
240            }
241    
242          if (! $tsv) {          my $res = $self->{_master_ua}->get($url);
243                  $log->warn("unable to call $url");  
244            if ($res->is_success) {
245                    #$log->debug( $res->content );
246                    return split(/\n/, $res->content) if wantarray;
247                    return $res->content;
248            } else {
249                    $log->warn("unable to call $url: " . $res->status_line);
250                    #$log->debug(Dumper($res, $self->{'_master_ua'}));
251                  return;                  return;
252          }          }
253    
         return split(/\n/, $tsv);  
254  }  }
255    
256  =head1 AUTHOR  =head1 AUTHOR

Legend:
Removed from v.210  
changed lines
  Added in v.212

  ViewVC Help
Powered by ViewVC 1.1.26