App-DuckPAN
view release on metacpan or search on metacpan
lib/App/DuckPAN/Web.pm view on Meta::CPAN
$req = HTTP::Request->new(
GET => $to,
$h
);
}
p($req->as_string);
$res = $self->ua->request($req);
if ($res->is_success) {
$body = $res->decoded_content;
# Encode utf8 api_responses to bytestream for Plack.
utf8::encode $body if utf8::is_utf8 $body;
warn "Cannot use wrap_jsonp_callback and wrap_string callback at the same time!" if $wrap_jsonp_callback && $wrap_string_callback;
if ($wrap_jsonp_callback && $callback) {
$body = $callback.'('.$body.');' unless $missing_envs;
}
elsif ($wrap_string_callback && $callback) {
$body =~ s/"/\\"/g;
$body =~ s/\n/\\n/g;
$body =~ s/\R//g;
lib/App/DuckPAN/Web.pm view on Meta::CPAN
$page =~ s/####DUCKDUCKHACK-CALL-NRC####/$calls_nrc/g;
$page =~ s/####DUCKDUCKHACK-CALL-SCRIPT####/$calls_script/g;
$response->content_type('text/html');
$body = $page;
}
else {
my $res = $self->ua->request(HTTP::Request->new(GET => "http://".$hostname.$request->request_uri));
if ($res->is_success) {
$body = $res->decoded_content;
$response->code($res->code);
$response->content_type($res->content_type);
}
else {
p($res->status_line, color => { string => 'red' });
$body = "";
}
}
$response->body($body);
lib/App/DuckPAN/WebPublisher.pm view on Meta::CPAN
if (defined $site->fullpath_files->{$file}) {
$self->app->emit_info('Request '.$request->path_info.' uses '.$file.' from DDG::Publisher...');
$body = $site->fullpath_files->{$file}->uncached_content;
$response->code("200");
$response->content_type('text/html; charset=utf-8');
}
else {
my $res = $self->app->http->request(HTTP::Request->new(GET => $url.$request->request_uri));
if ($res->is_success) {
$body = $res->decoded_content;
$response->code($res->code);
$response->content_type($res->content_type);
}
else {
$body = "GET ".$url.$request->request_uri.": ".$res->status_line;
warn $body, "\n";
}
}
# This could cause issues with incorrectly encoded data as Plack expects a
lib/App/DuckPAN/WebStatic.pm view on Meta::CPAN
my $site = $self->_ports->{$request->port};
if ($site->{urls}->{$request->request_uri}) {
$body = path($site->{urls}->{$request->request_uri}->{$locale})->slurp_utf8;
$response->code("200");
$response->content_type('text/html');
}
else {
my $res = $self->ua->request(HTTP::Request->new(GET => $site->{base_url}.$request->request_uri));
if ($res->is_success) {
$body = $res->decoded_content;
$response->code($res->code);
$response->content_type($res->content_type);
}
else {
warn $res->status_line, "\n";
$body = "";
}
}
# This could cause issues with incorrectly encoded data as Plack expects a
( run in 0.253 second using v1.01-cache-2.11-cpan-26ccb49234f )