Catmandu-ArXiv

 view release on metacpan or  search on metacpan

lib/Catmandu/Importer/ArXiv.pm  view on Meta::CPAN

        $url = $u2->as_string;
    }

    my $res = $self->_request($url);

    return $res->{content};
}

sub _parse {
    my ( $self, $in ) = @_;

    my $xml = Catmandu::Importer::XML->new( file => \$in, path => 'entry' );
    return $xml->to_array;
}

sub _get_record {
    my ($self) = @_;

    my $xml   = $self->_call;
    my $stack = $self->_parse($xml);
    return $stack;
}

sub generator {
    my ($self) = @_;

    return sub {
        state $stack = $self->_get_record;
        my $rec = pop @$stack;
        $rec->{entry} ? return $rec->{entry} : return undef;
    };
}

1;

=head1 NAME

  Catmandu::Importer::ArXiv - Package that imports data from https://arxiv.org/.

=head1 SYNOPSIS

  use Catmandu::Importer::ArXiv;

  my %attrs = (
    query => 'all:electron'
  );

  my $importer = Catmandu::Importer::ArXiv->new(%attrs);

  my $n = $importer->each(sub {
    my $hashref = $_[0];
    # ...
  });

=head1 CONFIGURATION

=over

=item base_api

The API endpoint. Default is https://export.arxiv.org/api/query

=item base_frontend

The arXiv base url. Default is https://arxiv.org

=item query

Search by query.

=item id

Search by one or many arXiv ids. This parameter accepts a comma-separated list of ids.
This parameter accepts also an ORCID iD.

=item start

Start parameter for pagination.

=item limit

Limit parameter for pagination.

=back

=head1 SEE ALSO

L<Catmandu::Iterable>, L<Catmandu::Importer::Inspire>

=cut



( run in 2.473 seconds using v1.01-cache-2.11-cpan-364913b4093 )