]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WwwStream.pm
www_stream: note existence of IMAP and NNTP URLs
[public-inbox.git] / lib / PublicInbox / WwwStream.pm
index 472316c29c4ca12531b4b059ac8c9751772322cc..5be5ed0cad59988572a2499f5262a3d1c8c50dc7 100644 (file)
@@ -89,7 +89,7 @@ sub coderepos ($) {
        my @ret;
        for my $cr_name (@$cr) {
                $ret[0] //= <<EOF;
-<a id=code>code repositories for project(s) associated with this inbox:
+<a id=code>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) ?
-               '<hr><pre>'.join("\n\n", @cr).'</pre></body></html>' :
-               '</body></html>';
+       my $upfx = $ctx->{-upfx} || '';
+       my $m = "${upfx}_/text/mirror/";
+       my $x;
+       if ($ctx->{ibx}->can('cloneurl')) {
+               $x = <<EOF;
+This is a public inbox, see <a
+href="$m">mirroring instructions</a>
+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 .= <<EOM;
+as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).
+EOM
+                       } elsif ($has_nntp) {
+                               $x .= <<EOM;
+as well as URLs for NNTP newsgroup(s).
+EOM
+                       } else {
+                               $x .= <<EOM;
+as well as URLs for IMAP folder(s).
+EOM
+                       }
+               }
+       } else {
+               $x = <<EOF;
+This is an external index of several public inboxes,
+see <a href="$m">mirroring instructions</a> on how to clone and mirror
+all data and code used by this external index.
+EOF
+       }
+       chomp $x;
+       '<hr><pre>'.join("\n\n", coderepos($ctx), $x).'</pre></body></html>'
 }
 
 # callback for HTTP.pm (and any other PSGI servers)