Skip to content

Commit 13e035b

Browse files
authored
Merge pull request #20 from metacpan/mickey/river
mickey/river
2 parents 0344c2d + 0fe80bb commit 13e035b

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

bin/river.pl

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
use strict;
2+
use warnings;
3+
use v5.36;
4+
5+
use Cpanel::JSON::XS qw< decode_json >;
6+
use Getopt::Long;
7+
8+
use MetaCPAN::Logger qw< :log :dlog >;
9+
10+
use MetaCPAN::ES;
11+
use MetaCPAN::Ingest qw< read_url >;
12+
13+
# setup
14+
my $river_url //= 'https://neilb.org/river-of-cpan.json.gz';
15+
my $river_data = decode_json( read_url($river_url) );
16+
17+
my $es = MetaCPAN::ES->new( index => "cpan", type => "distribution" );
18+
my $bulk = $es->bulk();
19+
20+
log_info {'Updating the distribution index'};
21+
22+
for my $data ( @{$river_data} ) {
23+
my $dist = delete $data->{dist};
24+
25+
$bulk->update( {
26+
id => $dist,
27+
doc => {
28+
name => $dist,
29+
river => $data,
30+
},
31+
doc_as_upsert => 1,
32+
} );
33+
}
34+
35+
$bulk->flush;
36+
37+
1;
38+
39+
__END__
40+
41+
=pod
42+
43+
=head1 SYNOPSIS
44+
45+
# bin/metacpan river
46+
47+
=head1 DESCRIPTION
48+
49+
Retrieves the CPAN river data from its source and
50+
updates our ES information.
51+
52+
This can then be accessed here:
53+
54+
http://fastapi.metacpan.org/v1/distribution/Moose
55+
http://fastapi.metacpan.org/v1/distribution/HTTP-BrowserDetect
56+
57+
=cut

0 commit comments

Comments
 (0)