-# Copyright (C) 2018-2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2018-2021 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# for XOVER, OVER in NNTP, and feeds/homepage/threads in PSGI
$smsg->{lines} = $eml->body_raw =~ tr!\n!\n!;
my $mids = mids_for_index($eml);
my $refs = parse_references($smsg, $eml, $mids);
+ $mids->[0] //= $smsg->{mid} //= $eml->{-lei_fake_mid};
+ $smsg->{mid} //= '';
my $subj = $smsg->{subject};
my $xpath;
if ($subj ne '') {
sub create {
my ($self) = @_;
- unless (-r $self->{filename}) {
+ my $fn = $self->{filename} // do {
+ Carp::confess('BUG: no {filename}') unless $self->{dbh};
+ return;
+ };
+ unless (-r $fn) {
require File::Path;
require File::Basename;
- File::Path::mkpath(File::Basename::dirname($self->{filename}));
+ File::Path::mkpath(File::Basename::dirname($fn));
}
# create the DB:
PublicInbox::Over::dbh($self);
}
+sub blob_exists {
+ my ($self, $oidhex) = @_;
+ my $sth = $self->dbh->prepare_cached(<<'', undef, 1);
+SELECT COUNT(*) FROM xref3 WHERE oidbin = ?
+
+ $sth->bind_param(1, pack('H*', $oidhex), SQL_BLOB);
+ $sth->execute;
+ $sth->fetchrow_array;
+}
+
1;