App-DuckPAN
view release on metacpan or search on metacpan
lib/App/DuckPAN/Web.pm view on Meta::CPAN
my ($self, $root) = @_;
# ensure results and ad containers exist
my $ad_container = $root->look_down(id => "ads");
my $links_container = $root->look_down(id => "links");
return unless $ad_container && $links_container;
#inject a mock ad into the page
$ad_container->attr("style", "display: block");
$ad_container->push_content(
HTML::TreeBuilder->new_from_content(
q(<div id="ra-0" class="result results_links highlight_a result--ad highlight_sponsored sponsored highlight highlight_sponsored_hover" data-nir="1">
<div class="result__body links_main links_deep">
<a href="#" class="result__badge badge--ad">Ad</a>
<h2 class="result__title">
<a class="result__a" href="#">Lorem ipsum Culpa ex adipisicing.</a>
<a class="result__check" href="#">
<span class="result__check__tt">Lorem ipsum Consectetur nostrud id quis in ut.</span>
</a>
</h2>
<div class="result__snippet">
<a href="#">Lorem ipsum Nisi aute velit sit dolore sit amet fugiat consequat aute reprehenderit in dolore deserunt.</a>
</div>
<div class="result__extras">
<div class="result__extras__url">
<a class="result__url" href="#">duckduckgo.com</a>
</div>
</div>
</div>
</div>)
)->guts
);
#inject some mock ad into the page
for (1..4){
$links_container->push_content(
HTML::TreeBuilder->new_from_content(
qq(<div id="r$_-0" class="result results_links_deep " data-nir="$_"
<div class="result__body links_main links_deep">
<h2 class="result__title">
<a class="result__a" href="#">
Lorem ipsum Duis elit voluptate in ut sed culpa nostrud sint est occaecat in irure veniam exercitation
</a>
<a class="result__check" href="#">
<span class="result__check__tt">Your browser indicates if you've visited this link</span>
</a>
</h2>
<div class="result__snippet">
Lorem ipsum Mollit ut voluptate in id laborum nulla adipisicing ad ea do do nisi nulla qui quis do nisi pariatur voluptate minim dolore enim commodo cillum ullamco pariatur culpa.
</div>
<div class="result__extras">
<div class="result__extras__url">
<span class="result__icon">
<a href="#">
<img title="Search www.duckduckgo.com" id="i101" height="16" width="16" class="result__icon__img" src="//icons.duckduckgo.com/ip2/www.duckduckgo.com.ico">
</a>
</span>
<a class="result__url" href="#">
<span class="result__url__domain">Lorem.ipsum.com</span>
<span class="result__url__full">/Incididunt%20reprehenderit%20ullamco.</span>
</a>
</div>
<a href="#">More results</a>
</div>
</div>
</div>)
)->guts
);
}
}
1;
__END__
=pod
=head1 NAME
App::DuckPAN::Web - Webserver for duckpan server
=head1 VERSION
version 1021
=head1 AUTHOR
DuckDuckGo <open@duckduckgo.com>, Zach Thompson <zach@duckduckgo.com>, Zaahir Moolla <moollaza@duckduckgo.com>, Torsten Raudssus <torsten@raudss.us> L<https://raudss.us/>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2013 by DuckDuckGo, Inc. L<https://duckduckgo.com/>.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
=cut
( run in 2.377 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )