=================================================================== RCS file: /cvs/openbsd/errata_scraper/errata_scraper.pl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- openbsd/errata_scraper/errata_scraper.pl 2011/05/29 02:04:30 1.4 +++ openbsd/errata_scraper/errata_scraper.pl 2015/10/12 01:37:53 1.5 @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $AFresh1: errata_scraper.pl,v 1.3 2011/03/23 18:46:16 andrew Exp $ +# $AFresh1: errata_scraper.pl,v 1.4 2011/05/29 01:04:30 andrew Exp $ ######################################################################## # Copyright (c) 2011 Andrew Fresh # @@ -29,12 +29,23 @@ 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') + reverse @{ $ua->get( $base_uri . $l->attr('href') )->res->dom('li') } ) { - my $patch = $e->at('a[href$=".patch"]')->replace('')->{href}; - my $title = $e->at('strong')->replace('')->all_text; - my $arch = $e->at('i')->replace('')->all_text; + my $title; + if (my $t = $e->at('strong')) { + $title = $t->all_text; + $t->replace(''); + } + else { + next; + } + my $patch; + if (my $p = $e->at('a[href$=".patch.sig"],a[href$=".patch"]')) { + $patch = $p->attr('href'); + $p->replace(''); + } + my $arch = $e->at('i')->tap(sub { $_[0]->replace('') } )->text; my $descr = $e->all_text; $descr =~ s/\s+/ /gs; $descr =~ s/\s(\.(?:\s|$))/$1/gs; @@ -42,7 +53,7 @@ print 'Title: ', $title, "\n"; print 'Arch: ', $arch, "\n"; - print 'Patch: ', $patch, "\n"; + print 'Patch: ', $patch, "\n" if $patch; print 'Descr: ', $descr, "\n"; print "\n"; }