X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSearchView.pm;h=c0c801b321c6bc389ee1a28bd651e92276b9a3ca;hb=5c8909925072804901e9c3b45bbf25446d379e7b;hp=2d0b8e13f24c8b4aecc7f6ad73652323b4465c7c;hpb=b503d87a23c90fc0f705a79bce34944e7e20b28b;p=public-inbox.git diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index 2d0b8e13..c0c801b3 100644 --- a/lib/PublicInbox/SearchView.pm +++ b/lib/PublicInbox/SearchView.pm @@ -98,11 +98,9 @@ sub mset_summary { my $obfs_ibx = $ibx->{obfuscate} ? $ibx : undef; my @nums = @{$ibx->isrch->mset_to_artnums($mset)}; my %num2msg = map { $_->{num} => $_ } @{$ibx->over->get_all(@nums)}; - my ($min, $max); + my ($min, $max, %seen); foreach my $m ($mset->items) { - my $rank = sprintf("%${pad}d", $m->get_rank + 1); - my $pct = get_pct($m); my $num = shift @nums; my $smsg = delete($num2msg{$num}) or do { eval { @@ -111,7 +109,12 @@ sub mset_summary { }; next; }; + my $mid = $smsg->{mid}; + next if $seen{$mid}++; + $mid = mid_href($mid); $ctx->{-t_max} //= $smsg->{ts}; + my $rank = sprintf("%${pad}d", $m->get_rank + 1); + my $pct = get_pct($m); # only when sorting by relevance, ->items is always # ordered descending: @@ -125,7 +128,6 @@ sub mset_summary { obfuscate_addrs($obfs_ibx, $f); } my $date = fmt_ts($smsg->{ds}); - my $mid = mid_href($smsg->{mid}); $s = '(no subject)' if $s eq ''; $$res .= qq{$rank. }. $s . "\n"; @@ -217,7 +219,7 @@ sub search_nav_top { $rv .= qq{
};
 }
 
-sub search_nav_bot {
+sub search_nav_bot { # also used by WwwListing for searching extindex miscidx
 	my ($mset, $q) = @_;
 	my $total = $mset->get_matches_estimated;
 	my $l = $q->{l};