version 1.4, 2011/05/29 02:04:30 |
version 1.5, 2015/10/12 01:37:53 |
|
|
#!/usr/bin/perl |
#!/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 <andrew@afresh1.com> |
# Copyright (c) 2011 Andrew Fresh <andrew@afresh1.com> |
# |
# |
|
|
foreach my $l ( @{$ls}[ -2, -1 ] ) { |
foreach my $l ( @{$ls}[ -2, -1 ] ) { |
print 'Errata for OpenBSD ', $l->text, "\n"; |
print 'Errata for OpenBSD ', $l->text, "\n"; |
foreach my $e ( |
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; |
my $title = $e->at('strong')->replace('')->all_text; |
if (my $t = $e->at('strong')) { |
my $arch = $e->at('i')->replace('')->all_text; |
$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; |
my $descr = $e->all_text; |
$descr =~ s/\s+/ /gs; |
$descr =~ s/\s+/ /gs; |
$descr =~ s/\s(\.(?:\s|$))/$1/gs; |
$descr =~ s/\s(\.(?:\s|$))/$1/gs; |
|
|
|
|
print 'Title: ', $title, "\n"; |
print 'Title: ', $title, "\n"; |
print 'Arch: ', $arch, "\n"; |
print 'Arch: ', $arch, "\n"; |
print 'Patch: ', $patch, "\n"; |
print 'Patch: ', $patch, "\n" if $patch; |
print 'Descr: ', $descr, "\n"; |
print 'Descr: ', $descr, "\n"; |
print "\n"; |
print "\n"; |
} |
} |