# 1016 => '',
}};
+our $session_id;
sub search {
my ( $self, $query ) = @_;
die "need query" unless defined $query;
- my $url = 'http://161.53.240.197:8991/F?RN=' . rand(1000000000);
+ $session_id ||= int rand(1000000000);
+ # FIXME allocate session just once
+ my $url = 'http://161.53.240.197:8991/F?RN=' . $session_id;
# fake JavaScript code on page which creates random session
diag "get $url";
$mech->follow_link( url_regex => qr/find-c/ );
-diag "submit search $query";
+ if ( $mech->content =~ m{Requested library is unavailable at the moment} ) {
+ warn "WARNING: default database not available";
+ $self->save_content;
+ my $url = 'local_base=' . lc $self->{database};
+ $mech->follow_link( url_regex => qr/$url/ );
+ $mech->follow_link( url_regex => qr/find-c/ );
+ }
+
+diag "submit search [$query] on ", $self->{database};
+
$mech->submit_form(
fields => {
'ccl_term' => $query,
+ 'local_base' => $self->{database},
},
);
$mech->follow_link( url_regex => qr/format=001/ );
- return $hits;
+ return $self->{hits} = $hits;
}
$self->save_marc( $id, $marc->as_usmarc );
- $nr++;
-
- $mech->follow_link( url_regex => qr/set_entry=0*$nr/ );
+ if ( $nr < $self->{hits} ) {
+ $nr++;
+ diag "follow link to next record $nr";
+ $mech->follow_link( url_regex => qr/set_entry=0*$nr/ );
+ }
return $marc->as_usmarc;
} else {