package PublicInbox::ExtMsg;
use strict;
use warnings;
-use PublicInbox::Hval qw(ascii_html prurl);
-use PublicInbox::WwwStream;
+use PublicInbox::Hval qw(ascii_html prurl mid_href);
+use PublicInbox::WwwStream qw(html_oneshot);
+use PublicInbox::Smsg;
our $MIN_PARTIAL_LEN = 16;
# TODO: user-configurable
sub PARTIAL_MAX () { 100 }
sub mids_from_mset { # Search::retry_reopen callback
- [ map { PublicInbox::SearchMsg::from_mitem($_)->mid } $_[0]->items ];
+ [ map { PublicInbox::Smsg::from_mitem($_)->mid } $_[0]->items ];
}
sub search_partial ($$) {
}
my $code = 404;
- my $h = PublicInbox::Hval->new_msgid($mid);
- my $href = $h->{href};
- my $html = $h->as_html;
+ my $href = mid_href($mid);
+ my $html = ascii_html($mid);
my $title = "<$html> not found";
my $s = "<pre>Message-ID <$html>\nnot found\n";
if ($n_partial) {
my $env = $ctx->{env} if $ibx->{name} eq $cur_name;
my $u = $ibx->base_url($env) or next;
foreach my $m (@$res) {
- my $p = PublicInbox::Hval->new_msgid($m);
- my $r = $p->{href};
- my $t = $p->as_html;
- $s .= qq{<a\nhref="$u$r/">$u$t/</a>\n};
+ my $href = mid_href($m);
+ my $html = ascii_html($m);
+ $s .= qq{<a\nhref="$u$href/">$u$html/</a>\n};
}
}
}
$ctx->{-html_tip} = $s .= '</pre>';
$ctx->{-title_html} = $title;
$ctx->{-upfx} = '../';
- PublicInbox::WwwStream->response($ctx, $code);
+ html_oneshot($ctx, $code);
}
sub ext_urls {
sub exact {
my ($ctx, $found, $mid) = @_;
- my $h = PublicInbox::Hval->new_msgid($mid);
- my $href = $h->{href};
- my $html = $h->as_html;
+ my $href = mid_href($mid);
+ my $html = ascii_html($mid);
my $title = "<$html> found in ";
my $end = @$found == 1 ? 'another inbox' : 'other inboxes';
$ctx->{-title_html} = $title . $end;
qq(<a\nhref="$u$href/">$u$html/</a>\n)
} @$found),
$ext_urls, '</pre>');
- PublicInbox::WwwStream->response($ctx, $code);
+ html_oneshot($ctx, $code);
}
1;