=================================================================== RCS file: /cvs/openbsd/errata_scraper/errata_scraper.pl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- openbsd/errata_scraper/errata_scraper.pl 2011/03/21 17:28:15 1.2 +++ openbsd/errata_scraper/errata_scraper.pl 2011/03/23 19:46:16 1.3 @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $AFresh1: errata_scraper.pl,v 1.1 2011/03/21 16:26:58 andrew Exp $ +# $AFresh1: errata_scraper.pl,v 1.2 2011/03/21 16:28:15 andrew Exp $ ######################################################################## # Copyright (c) 2011 Andrew Fresh # @@ -21,11 +21,18 @@ use Mojo::UserAgent; use Mojo::ByteStream 'b'; -Mojo::UserAgent->new->get('http://www.openbsd.org/errata48.html') - ->res->dom('li')->each( - sub { - my $e = shift; +my $base_uri = 'http://www.openbsd.org/'; +my $ua = Mojo::UserAgent->new; + +my $ls = $ua->get( $base_uri . 'errata.html' )->res->dom('a[href^="errata"]'); + +foreach my $l ( @{$ls}[ -2, -1 ] ) { + print 'Errata for OpenBSD ', $l->text, "\n"; + foreach my $e ( + reverse @{ $ua->get( $base_uri . $l->attrs->{'href'} )->res->dom('li') + } ) + { my $patch = $e->at('a[href$=".patch"]')->attrs->{href}; my $title = b( $e->at('strong')->replace('')->all_text )->trim; my $arch = b( $e->at('i')->replace('')->all_text )->trim; @@ -38,4 +45,4 @@ print 'Descr: ', $descr, "\n"; print "\n"; } -); +}