]> Sergey Matveev's repositories - public-inbox.git/commitdiff
www: a note .onion URLs require the usage of Tor
authorEric Wong <e@80x24.org>
Thu, 21 Jul 2016 01:50:01 +0000 (01:50 +0000)
committerEric Wong <e@80x24.org>
Thu, 21 Jul 2016 01:56:36 +0000 (01:56 +0000)
Not everybody knows what .onion URLs are, so refer them to Tor.

lib/PublicInbox/WwwStream.pm

index bdc8048d5ef1cc6050d6a4903b0f3b308bfd7101..de457b4814653fbef34ca737c48634ad417c16ad 100644 (file)
@@ -8,6 +8,7 @@ use warnings;
 use PublicInbox::Hval qw(ascii_html);
 use URI;
 use constant PI_URL => 'https://public-inbox.org/';
+our $TOR_URL = 'https://www.torproject.org/';
 
 sub close {}
 
@@ -68,8 +69,10 @@ sub _html_end {
        chop $http;
        my %seen = ( $http => 1 );
        my @urls = ($http);
+       my $need_tor;
        foreach my $u (@{$obj->cloneurl}) {
                next if $seen{$u};
+               $need_tor = 1 if $u =~ m!\A[^:]+://\w+\.onion/!;
                $seen{$u} = 1;
                push @urls, $u =~ /\Ahttps?:/ ? qq(<a\nhref="$u">$u</a>) : $u;
        }
@@ -79,12 +82,17 @@ sub _html_end {
                $urls .= "\n" .
                        join("\n", map { "\tgit clone --mirror $_" } @urls);
        }
+
+       if ($need_tor) {
+               $urls .= "\n note: .onion URLs require Tor: ";
+               $urls .= qq[<a\nhref="$TOR_URL">$TOR_URL</a>];
+       }
        my $url = PublicInbox::Hval::prurl($ctx->{env}, PI_URL);
-       '<hr><pre>'.join("\n",
-               '- ' . $desc,
+       '<hr><pre>'.join("\n\n",
+               $desc,
                $urls,
                'Served with public-inbox: '.
-               qq(git clone <a\nhref="$url">$url</a> public-inbox),
+               qq(git clone <a\nhref="$url">$url</a> public-inbox)
        ).'</pre></body></html>';
 }