use strict; use warnings;
use Data::Dumper;
use LWP::Simple;
use HTML::TreeBuilder;
my $html = '
';
my $tree = HTML::TreeBuilder->new_from_content($html);
my $table = $tree->look_down('_tag' => 'table');
my @potential_game = $table->look_down('_tag' => 'tr');
warn scalar @potential_game, ' potential games';
my @viewable_game = grep {
my $elem = $_;
my $game_link = $elem->look_down(href => qr!files.gokgs.com/games!);
if ($game_link) {
my $content = ($game_link->content_list)[0];
$content eq 'Yes';
} else {
();
}
} @potential_game;
warn scalar @viewable_game, ' viewable games';
sub fix_colspan {
my($td)=@_;
my $colspan = $td->attr('colspan');
if (defined($colspan) and $colspan == 2) {
my @td = (HTML::Element->new_from_lol( [td => 'a'] ) );
push @td, HTML::Element->new_from_lol( [td => 'b'] ) ;
$td->replace_with(@td)->delete;
}
}
for my $game (@viewable_game) {
my @td = $game->look_down('_tag' => 'td');
warn 'pre_colspan has ', scalar @td, ' td elems' ;
$game->dump;
fix_colspan($_) for @td;
warn 'post_colspan has ', scalar @td, ' td elems' ;
$game->dump;
}