X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FWwwStream.pm;h=aee78170c713df91ea1186264080fb32a7e2dbfa;hb=23af251dd607c4e75ab1e68063f2c885c48cc035;hp=472316c29c4ca12531b4b059ac8c9751772322cc;hpb=d7c052507561d121a46f952ec8f700beb3c3a33a;p=public-inbox.git diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm index 472316c2..aee78170 100644 --- a/lib/PublicInbox/WwwStream.pm +++ b/lib/PublicInbox/WwwStream.pm @@ -32,7 +32,7 @@ sub init { sub async_eml { # for async_blob_cb my ($ctx, $eml) = @_; - $ctx->{http_out}->write($ctx->translate($ctx->{cb}->($ctx, $eml))); + $ctx->write($ctx->{cb}->($ctx, $eml)); } sub html_top ($) { @@ -89,7 +89,7 @@ sub coderepos ($) { my @ret; for my $cr_name (@$cr) { $ret[0] //= <code repositories for project(s) associated with this inbox: +Code repositories for project(s) associated with this inbox: EOF my $urls = $cfg->get_all("coderepo.$cr_name.cgiturl"); if ($urls) { @@ -109,10 +109,42 @@ EOF sub _html_end { my ($ctx) = @_; - my @cr = coderepos($ctx); - scalar(@cr) ? - '
'.join("\n\n", @cr).'
' : - ''; + my $upfx = $ctx->{-upfx} || ''; + my $m = "${upfx}_/text/mirror/"; + my $x; + if ($ctx->{ibx}->can('cloneurl')) { + $x = <mirroring instructions
+for how to clone and mirror all data and code used for this inbox +EOF + my $has_nntp = @{$ctx->{ibx}->nntp_url($ctx)}; + my $has_imap = @{$ctx->{ibx}->imap_url($ctx)}; + if ($has_nntp || $has_imap) { + substr($x, -1, 1) = ";\n"; # s/\n/;\n + if ($has_nntp && $has_imap) { + $x .= <mirroring instructions on how to clone and mirror +all data and code used by this external index. +EOF + } + chomp $x; + '
'.join("\n\n", coderepos($ctx), $x).'
' } # callback for HTTP.pm (and any other PSGI servers) @@ -138,9 +170,9 @@ sub html_oneshot ($$;$) { 'Content-Length' => undef ]; bless $ctx, __PACKAGE__; $ctx->{gz} = PublicInbox::GzipFilter::gz_or_noop($res_hdr, $ctx->{env}); - $ctx->{base_url} //= do { + $ctx->{base_url} // do { $ctx->zmore(html_top($ctx)); - base_url($ctx); + $ctx->{base_url} = base_url($ctx); }; $ctx->zmore($$sref) if $sref; my $bdy = $ctx->zflush(_html_end($ctx)); @@ -155,8 +187,7 @@ sub async_next ($) { if (my $smsg = $ctx->{smsg} = $ctx->{cb}->($ctx)) { $ctx->smsg_blob($smsg); } else { - $ctx->{http_out}->write( - $ctx->translate(_html_end($ctx))); + $ctx->write(_html_end($ctx)); $ctx->close; # GzipFilter->close } };