We already pre-populate the hashref when loading $smsg
(PublicInbox::SearchMsg) objects out of over.sqlite3 or Xapian,
so making expensive method calls isn't necessary in those cases.
We only need to use the method calls when SQLite or Xapian are
not available or are being populated (such as during indexing).
- my $s = ascii_html($smsg->subject);
- my $f = ascii_html($smsg->from_name);
+ my $s = ascii_html($smsg->{subject});
+ my $f = ascii_html($smsg->{from_name});
if ($obfs_ibx) {
obfuscate_addrs($obfs_ibx, $s);
obfuscate_addrs($obfs_ibx, $f);
}
if ($obfs_ibx) {
obfuscate_addrs($obfs_ibx, $s);
obfuscate_addrs($obfs_ibx, $f);
}
- my $date = PublicInbox::View::fmt_ts($smsg->ds);
- my $mid = PublicInbox::Hval->new_msgid($smsg->mid)->{href};
+ my $date = PublicInbox::View::fmt_ts($smsg->{ds});
+ my $mid = PublicInbox::Hval->new_msgid($smsg->{mid})->{href};
$s = '(no subject)' if $s eq '';
$$res .= qq{$rank. <b><a\nhref="$mid/">}.
$s . "</a></b>\n";
$s = '(no subject)' if $s eq '';
$$res .= qq{$rank. <b><a\nhref="$mid/">}.
$s . "</a></b>\n";
my $next = $ibx->over->next_by_mid($ctx->{mid}, \$id, \$prev);
$ctx->{more} = $next ? [ $id, $prev, $next ] : undef;
return '' unless $smsg;
my $next = $ibx->over->next_by_mid($ctx->{mid}, \$id, \$prev);
$ctx->{more} = $next ? [ $id, $prev, $next ] : undef;
return '' unless $smsg;
- $ctx->{mhref} = '../' . mid_escape($smsg->mid) . '/';
+ $ctx->{mhref} = '../' . mid_escape($smsg->{mid}) . '/';
my $mime = delete $smsg->{mime};
_msg_page_prepare_obuf($mime->header_obj, $ctx, $nr);
multipart_text_as_html($mime, $ctx);
my $mime = delete $smsg->{mime};
_msg_page_prepare_obuf($mime->header_obj, $ctx, $nr);
multipart_text_as_html($mime, $ctx);
return missing_thread($ctx) unless $smsg;
$ctx->{-obfs_ibx} = $ibx->{obfuscate} ? $ibx : undef;
return missing_thread($ctx) unless $smsg;
$ctx->{-obfs_ibx} = $ibx->{obfuscate} ? $ibx : undef;
- $ctx->{-title_html} = ascii_html($smsg->subject);
+ $ctx->{-title_html} = ascii_html($smsg->{subject});
$ctx->{-html_tip} = thread_index_entry($ctx, $level, $smsg);
$ctx->{-queue} = \@q;
PublicInbox::WwwStream->response($ctx, 200, \&stream_thread_i);
$ctx->{-html_tip} = thread_index_entry($ctx, $level, $smsg);
$ctx->{-queue} = \@q;
PublicInbox::WwwStream->response($ctx, 200, \&stream_thread_i);
$smsg = $ibx->smsg_mime($m) and last;
}
return missing_thread($ctx) unless $smsg;
$smsg = $ibx->smsg_mime($m) and last;
}
return missing_thread($ctx) unless $smsg;
- $ctx->{-title_html} = ascii_html($smsg->subject);
+ $ctx->{-title_html} = ascii_html($smsg->{subject});
$ctx->{-html_tip} = '<pre>'.index_entry($smsg, $ctx, scalar @$msgs);
$ctx->{msgs} = $msgs;
PublicInbox::WwwStream->response($ctx, 200, \&thread_html_i);
$ctx->{-html_tip} = '<pre>'.index_entry($smsg, $ctx, scalar @$msgs);
$ctx->{msgs} = $msgs;
PublicInbox::WwwStream->response($ctx, 200, \&thread_html_i);
$$skel .= delete($ctx->{sl_note}) || '';
}
$$skel .= delete($ctx->{sl_note}) || '';
}
- my $f = ascii_html($smsg->from_name);
+ my $f = ascii_html($smsg->{from_name});
my $obfs_ibx = $ctx->{-obfs_ibx};
obfuscate_addrs($obfs_ibx, $f) if $obfs_ibx;
my $obfs_ibx = $ctx->{-obfs_ibx};
obfuscate_addrs($obfs_ibx, $f) if $obfs_ibx;
# Subject is never undef, this mail was loaded from
# our Xapian which would've resulted in '' if it were
# really missing (and Filter rejects empty subjects)
# Subject is never undef, this mail was loaded from
# our Xapian which would've resulted in '' if it were
# really missing (and Filter rejects empty subjects)
- my @subj = split(/ /, subject_normalized($smsg->subject));
+ my @subj = split(/ /, subject_normalized($smsg->{subject}));
# remove common suffixes from the subject if it matches the previous,
# so we do not show redundant text at the end.
my $prev_subj = $ctx->{prev_subj} || [];
# remove common suffixes from the subject if it matches the previous,
# so we do not show redundant text at the end.
my $prev_subj = $ctx->{prev_subj} || [];
- (eval { $a->topmost->{smsg}->ds } || 0) <=>
- (eval { $b->topmost->{smsg}->ds } || 0)
+ (eval { $a->topmost->{smsg}->{ds} } || 0) <=>
+ (eval { $b->topmost->{smsg}->{ds} } || 0)
my $mid = $node->{id};
my $smsg = $node->{smsg} // $ctx->{-inbox}->smsg_by_mid($mid);
if ($smsg) {
my $mid = $node->{id};
my $smsg = $node->{smsg} // $ctx->{-inbox}->smsg_by_mid($mid);
if ($smsg) {
- my $subj = subject_normalized($smsg->subject);
+ my $subj = subject_normalized($smsg->{subject});
$subj = '(no subject)' if $subj eq '';
my $ds = $smsg->{ds};
if ($level == 0) { # new, top-level topic
$subj = '(no subject)' if $subj eq '';
my $ds = $smsg->{ds};
if ($level == 0) { # new, top-level topic