]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WwwListing.pm
treewide: run update-copyrights from gnulib for 2019
[public-inbox.git] / lib / PublicInbox / WwwListing.pm
index 7995b3154bcd8ceb17720b2001446fdae723cf34..c063fca690de089777ace789c070b88b2ac0c4a7 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2019 all contributors <meta@public-inbox.org>
+# Copyright (C) 2019-2020 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # Provide an HTTP-accessible listing of inboxes.
@@ -6,7 +6,7 @@
 package PublicInbox::WwwListing;
 use strict;
 use warnings;
-use PublicInbox::Hval qw(ascii_html);
+use PublicInbox::Hval qw(ascii_html prurl);
 use PublicInbox::Linkify;
 use PublicInbox::View;
 use PublicInbox::Inbox;
@@ -32,7 +32,7 @@ sub list_all ($$$) {
 sub list_match_domain_i {
        my ($ibx, $arg) = @_;
        my ($list, $hide_key, $re) = @$arg;
-       if (!$ibx->{-hide}->{$hide_key} && $ibx->{url} =~ $re) {
+       if (!$ibx->{-hide}->{$hide_key} && grep($re, @{$ibx->{url}})) {
                push @$list, $ibx;
        }
 }
@@ -84,13 +84,13 @@ sub new {
 sub ibx_entry {
        my ($mtime, $ibx, $env) = @_;
        my $ts = PublicInbox::View::fmt_ts($mtime);
-       my $url = PublicInbox::Hval::prurl($env, $ibx->{url});
+       my $url = prurl($env, $ibx->{url});
        my $tmp = <<"";
 * $ts - $url
   ${\$ibx->description}
 
-       if (defined(my $info_url = $ibx->{info_url})) {
-               $tmp .= "\n$info_url";
+       if (defined(my $info_url = $ibx->{infourl})) {
+               $tmp .= '  ' . prurl($env, $info_url) . "\n";
        }
        $tmp;
 }
@@ -111,8 +111,7 @@ sub html ($$) {
 
                my $tmp = join("\n", map { ibx_entry(@$_, $env) } @$list);
                my $l = PublicInbox::Linkify->new;
-               $l->linkify_1($tmp);
-               $out = '<pre>'.$l->linkify_2(ascii_html($tmp)).'</pre><hr>';
+               $out = '<pre>'.$l->to_html($tmp).'</pre><hr>';
        }
        $out = "<html><head><title>$title</title></head><body>" . $out;
        $out .= '<pre>'. PublicInbox::WwwStream::code_footer($env) .
@@ -136,9 +135,7 @@ sub fingerprint ($) {
        my ($git) = @_;
        # TODO: convert to qspawn for fairness when there's
        # thousands of repos
-       my ($fh, $pid) = $git->popen('show-ref') or
-               die "popen($git->{git_dir} show-ref) failed: $!";
-
+       my ($fh, $pid) = $git->popen('show-ref');
        my $dig = Digest::SHA->new(1);
        while (read($fh, my $buf, 65536)) {
                $dig->add($buf);