-sub load_doc {
- my ($class, $doc) = @_;
- my $data = $doc->get_data;
- my $ts = eval {
- no strict 'subs';
- $doc->get_value(PublicInbox::Search::TS);
- };
- $ts = Search::Xapian::sortable_unserialise($ts);
- $data = $enc_utf8->decode($data);
- my ($subj, $from, $refs) = split(/\n/, $data);
- bless {
- doc => $doc,
- subject => $subj,
- ts => $ts,
- from_name => $from,
- references_sorted => $refs,
- }, $class;
-}
-
-sub subject {
- my ($self) = @_;
- my $subj = $self->{subject};
- return $subj if defined $subj;
- $subj = $self->{mime}->header('Subject');
- $subj = '' unless defined $subj;
- $subj =~ tr/\n/ /;
- $self->{subject} = $subj;
+sub get {
+ my ($class, $head, $db, $mid) = @_;
+ my $doc_id = $head->get_docid;
+ load_expand(wrap($class, $mid), $db->get_document($doc_id));