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