]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WwwStream.pm
wwwstream: shorten cloneurl uniquification
[public-inbox.git] / lib / PublicInbox / WwwStream.pm
index 0f4f55d0f7246a68ee737ecb7b445cc7d8ddee31..a724d0697db589121e08acd48b2ff5b9003e4736 100644 (file)
@@ -9,7 +9,7 @@
 package PublicInbox::WwwStream;
 use strict;
 use warnings;
-use PublicInbox::Hval qw(ascii_html);
+use PublicInbox::Hval qw(ascii_html prurl);
 our $TOR_URL = 'https://www.torproject.org/';
 our $CODE_URL = 'https://public-inbox.org/public-inbox.git';
 
@@ -78,7 +78,7 @@ sub _html_top ($) {
 
 sub code_footer ($) {
        my ($env) = @_;
-       my $u = PublicInbox::Hval::prurl($env, $CODE_URL);
+       my $u = prurl($env, $CODE_URL);
        qq(AGPL code for this site: git clone <a\nhref="$u">$u</a>)
 }
 
@@ -89,12 +89,12 @@ sub _html_end {
        my $ibx = $ctx->{-inbox};
        my $desc = ascii_html($ibx->description);
 
-       my (%seen, @urls);
+       my @urls;
        my $http = $self->{base_url};
        my $max = $ibx->max_git_epoch;
        my $dir = (split(m!/!, $http))[-1];
+       my %seen = ($http => 1);
        if (defined($max)) { # v2
-               $seen{$http} = 1;
                for my $i (0..$max) {
                        # old parts my be deleted:
                        -d "$ibx->{inboxdir}/git/$i.git" or next;
@@ -103,15 +103,13 @@ sub _html_end {
                        push @urls, "$url $dir/git/$i.git";
                }
        } else { # v1
-               $seen{$http} = 1;
                push @urls, $http;
        }
 
        # FIXME: epoch splits can be different in other repositories,
        # use the "cloneurl" file as-is for now:
        foreach my $u (@{$ibx->cloneurl}) {
-               next if $seen{$u};
-               $seen{$u} = 1;
+               next if $seen{$u}++;
                push @urls, $u =~ /\Ahttps?:/ ? qq(<a\nhref="$u">$u</a>) : $u;
        }