CPAN-Search-Author
view release on metacpan or search on metacpan
}
},
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "0"
}
},
"runtime" : {
"requires" : {
"HTML::Entities" : "1.35",
"HTTP::Request" : "1.40",
"LWP::UserAgent" : "2.33",
"perl" : "5.006"
}
}
},
"provides" : {
"CPAN::Search::Author" : {
"file" : "lib/CPAN/Search/Author.pm",
"version" : "0.04"
}
no_index:
directory:
- t
- inc
provides:
CPAN::Search::Author:
file: lib/CPAN/Search/Author.pm
version: '0.04'
requires:
HTML::Entities: '1.35'
HTTP::Request: '1.40'
LWP::UserAgent: '2.33'
perl: '5.006'
resources:
repository: https://github.com/Manwar/CPAN-Search-Author.git
version: '0.04'
Makefile.PL view on Meta::CPAN
LICENSE => 'artistic_2',
PL_FILES => {},
MIN_PERL_VERSION => 5.006,
CONFIGURE_REQUIRES => {
'ExtUtils::MakeMaker' => 0,
},
BUILD_REQUIRES => {
'Test::More' => 0,
},
PREREQ_PM => {
'HTTP::Request' => '1.40',
'LWP::UserAgent' => '2.33',
'HTML::Entities' => '1.35',
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'CPAN-Search-Author-*' },
(eval { ExtUtils::MakeMaker->VERSION(6.46) } ? (META_MERGE => {
'meta-spec' => { version => 2 },
provides => {
'CPAN::Search::Author' => { file => 'lib/CPAN/Search/Author.pm', version => '0.04' },
},
lib/CPAN/Search/Author.pm view on Meta::CPAN
Version 0.04
=cut
use 5.006;
use strict; use warnings;
use overload q("") => \&as_string, fallback => 1;
use Data::Dumper;
use HTTP::Request;
use LWP::UserAgent;
use HTML::Entities qw/decode_entities/;
our $DEBUG = 0;
=head1 DESCRIPTION
CPAN::Search::Author is an attempt to provide programmatical interface to CPAN
Search engine. CPAN Search is a search engine for the distributions,modules, docs,
and ID's on CPAN. It was conceived and built by Graham Barr as a way to make
lib/CPAN/Search/Author.pm view on Meta::CPAN
=cut
sub by_id
{
my $self = shift;
my $id = shift;
my $browser = $self->{_browser};
$browser->env_proxy;
my $request = HTTP::Request->new(POST=>qq[http://search.cpan.org/search?query=$id&mode=author]);
my $response = $browser->request($request);
print {*STDOUT} "Search By Id [$id] Status: " . $response->status_line . "\n" if $DEBUG;
die("ERROR: Couldn't connect to search.cpan.org.\n") unless $response->is_success;
my $contents = $response->content;
my @contents = split(/\n/,$contents);
foreach (@contents) {
chomp;
s/^\s+//g;
s/\s+$//g;
lib/CPAN/Search/Author.pm view on Meta::CPAN
=cut
sub where_id_starts_with {
my ($self, $letter) = @_;
die("ERROR: Invalid letter [$letter].\n") unless ($letter =~ /[A-Z]/i);
my $browser = $self->{_browser};
$browser->env_proxy;
my $request = HTTP::Request->new(POST=>qq[http://search.cpan.org/author/?$letter]);
my $response = $browser->request($request);
print {*STDOUT} "Search Id Starts With [$letter] Status: " . $response->status_line . "\n" if $DEBUG;
die("ERROR: Couldn't connect to search.cpan.org.\n") unless $response->is_success;
my $contents = $response->content;
my @contents = split(/\n/,$contents);
my @authors;
foreach (@contents) {
chomp;
lib/CPAN/Search/Author.pm view on Meta::CPAN
my $result = CPAN::Search::Author->new-search->where_name_contains('MAN');
=cut
sub where_name_contains {
my ($self, $query) = @_;
my $browser = $self->{_browser};
$browser->env_proxy;
my $request = HTTP::Request->new(POST=>qq[http://search.cpan.org/search?query=$query&mode=author]);
my $response = $browser->request($request);
print {*STDOUT} "Search By Name Contains [$query] Status: " . $response->status_line . "\n" if $DEBUG;
die("ERROR: Couldn't connect to search.cpan.org.\n") unless $response->is_success;
my $contents = $response->content;
my @contents = split(/\n/,$contents);
my $authors;
foreach (@contents) {
chomp;
( run in 0.291 second using v1.01-cache-2.11-cpan-de7293f3b23 )