203 |
my $tree = $args->{tree} || die "no tree"; |
my $tree = $args->{tree} || die "no tree"; |
204 |
my $message = $args->{message} || ''; |
my $message = $args->{message} || ''; |
205 |
my $fatal = $args->{fatal}; |
my $fatal = $args->{fatal}; |
206 |
die "no templates" unless defined( $args->{templates} ); |
die "no triplets" unless defined( $args->{triplets} ); |
207 |
my @templates; |
my @triplets; |
208 |
warn dump( $args->{templates} ); |
warn dump( $args->{triplets} ); |
209 |
if ( ref( $args->{templates} ) eq 'ARRAY' ) { |
if ( ref( $args->{triplets} ) eq 'ARRAY' ) { |
210 |
@templates = @{ $args->{templates} }; |
@triplets = @{ $args->{triplets} }; |
211 |
} else { |
} else { |
212 |
@templates = ( $args->{templates} ); |
@triplets = ( $args->{triplets} ); |
213 |
} |
} |
214 |
|
|
215 |
push @templates, ( undef, undef ) if ( $#templates == 0 ); |
push @triplets, ( undef, undef ) if ( $#triplets == 0 ); |
216 |
|
|
217 |
die "wrapper doesn't have 3 elements but ", $#templates unless ( |
die "wrapper doesn't have 3 elements but ", $#triplets unless ( |
218 |
( $#templates + 1 ) % 3 == 0 |
( $#triplets + 1 ) % 3 == 0 |
219 |
); |
); |
220 |
|
|
221 |
my ( $el, $attr, $value ); |
my ( $el, $attr, $value ); |
223 |
my @results; |
my @results; |
224 |
my @tags; |
my @tags; |
225 |
|
|
226 |
while ( @templates ) { |
while ( @triplets ) { |
227 |
( $el,$attr,$value ) = splice( @templates, 0, 3 ); |
( $el,$attr,$value ) = splice( @triplets, 0, 3 ); |
228 |
my $tag = $attr ? "<$el $attr=\"$value\">" : "<$el>"; |
my $tag = $attr ? "<$el $attr=\"$value\">" : "<$el>"; |
229 |
push @tags, $tag; |
push @tags, $tag; |
230 |
$self->log->debug("looking for $message $tag"); |
$self->log->debug("looking for $message $tag"); |
287 |
|
|
288 |
my $div = $self->element_by_triplet( |
my $div = $self->element_by_triplet( |
289 |
tree => $tree, |
tree => $tree, |
290 |
templates => $args->{wrapper}, |
triplets => $args->{wrapper}, |
291 |
message => 'wrapper for all results', |
message => 'wrapper for all results', |
292 |
fatal => 1 |
fatal => 1 |
293 |
); |
); |
300 |
|
|
301 |
my @r = $self->element_by_triplet( |
my @r = $self->element_by_triplet( |
302 |
tree => $tree, |
tree => $tree, |
303 |
templates => $args->{results}, |
triplets => $args->{results}, |
304 |
message => 'result element', |
message => 'result element', |
305 |
); |
); |
306 |
|
|
323 |
$div = $self->element_by_triplet( |
$div = $self->element_by_triplet( |
324 |
tree => $page_tree, |
tree => $page_tree, |
325 |
message => "result $nr", |
message => "result $nr", |
326 |
templates => $args->{scrape} |
triplets => $args->{scrape} |
327 |
); |
); |
328 |
|
|
329 |
$self->add_record( |
$self->add_record( |