]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchMsg.pm
view: depend on SearchMsg for Message-ID
[public-inbox.git] / lib / PublicInbox / SearchMsg.pm
index dd3d58d078a5a717ada9960835185f9925743afd..e314fed1b5645e6d5297835b6960e0861796ae7e 100644 (file)
@@ -6,7 +6,6 @@
 package PublicInbox::SearchMsg;
 use strict;
 use warnings;
-use Search::Xapian;
 use PublicInbox::MID qw/mid_clean mid_mime/;
 use PublicInbox::Address;
 use PublicInbox::MsgTime qw(msg_timestamp msg_datestamp);
@@ -24,6 +23,13 @@ sub wrap {
        bless { doc => $doc, mime => undef, mid => $mid }, $class;
 }
 
+sub get {
+       my ($class, $head, $db, $mid) = @_;
+       my $doc_id = $head->get_docid;
+       my $doc = $db->get_document($doc_id);
+       load_expand(wrap($class, $doc, $mid))
+}
+
 sub get_val ($$) {
        my ($doc, $col) = @_;
        Search::Xapian::sortable_unserialise($doc->get_value($col));
@@ -158,9 +164,10 @@ sub mid ($;$) {
                $self->{mid} = $mid;
        } elsif (my $rv = $self->{mid}) {
                $rv;
+       } elsif ($self->{doc}) {
+               $self->{mid} = _get_term_val($self, 'Q', qr/\AQ/);
        } else {
-               $self->{mid} = _get_term_val($self, 'Q', qr/\AQ/) ||
-                               $self->_extract_mid;
+               $self->_extract_mid; # v1 w/o Xapian
        }
 }