1 package WebPAC::Input::OAI;
7 use HTTP::OAI::Metadata::OAI_DC;
8 use base qw/WebPAC::Common/;
10 use Data::Dump qw/dump/;
14 WebPAC::Input::OAI - read MARC records from OAI
18 our $VERSION = '0.00';
24 my $input = new WebPAC::Input::OAI(
25 url => 'http://arXiv.org/oai2',
27 until => '2001-04-10',
28 path => 'var/oai/arXiv',
40 my $log = $self->_get_logger();
41 $log->debug( 'arg = ', dump($arg) );
43 open(my $fh, '<', $arg->{path});
45 $log->error("can't open $arg->{path}: $!");
49 my $h = HTTP::OAI::Harvester->new( baseURL => $self->{url} );
52 $list->{$_} = $self->{$_} foreach ( qw( from until ) );
54 $log->info("ListRecords ", dump($list));
56 my $response = $h->ListRecords(
57 metadataPrefix=>'oai_dc',
58 handlers=>{metadata=>'HTTP::OAI::Metadata::OAI_DC'},
62 warn "## ",dump($response);
64 if ( $response->is_error ) {
65 $log->logdie("Error harvesting $self->{url}: $response->message");
68 $self->{oai_response} = $response;
70 $self ? return $self : return undef;
75 Return record with ID C<$mfn> from database
77 my $rec = $input->fetch_rec( $mfn );
86 my $rec = $self->{oai_response}->next;
88 my $row = $rec->metadata->dc;
89 warn "# row ",dump($row);
91 push @{$row->{'000'}}, $mfn;
97 Return number of records in database
99 my $size = $isis->size;
105 return $self->{oai_response}->resumptionToken->completeListSize;
111 Dobrica Pavlinusic, C<< <dpavlin@rot13.org> >>
113 =head1 COPYRIGHT & LICENSE
115 Copyright 2011 Dobrica Pavlinusic, All Rights Reserved.
117 This program is free software; you can redistribute it and/or modify it
118 under the same terms as Perl itself.