use Data::Printer;
use DBI;
-use Tie::DBI;
=head1 NAME
);
GetOptions(\%options,
- 'build_cache|build-cache|B!',
+ 'build_cache|build-cache!',
'bibtex|b=s@',
'bibtex_cache|bibtex-cache|c=s',
'pdfviewer|p=s',
[@ARGV,
@{ref $options{bibtex}?$options{bibtex}:[$options{bibtex}]},
];
+ @ARGV = ();
}
if (exists $options{bibtex}) {
for my $bibtex_file (@{ref $options{bibtex}?$options{bibtex}:[$options{bibtex}]}) {
load_bibtex_entries_into_database($dbh,$sth,\%entries);
}
+ p @ARGV if $DEBUG;
for my $bibtex_key (@ARGV) {
open_bibtex_key(\%options,$dbh,$sth,\%entries,$bibtex_key);
}
if (-e "${_}.xoj") {
$xoj = 1;
}
- insert_or_replace_papers($dbh,$sth,basename($File::Find::name),File::Spec->rel2abs($File::Find::name),$xoj);
+ insert_or_replace_papers($dbh,$sth,basename($File::Find::name),File::Spec->rel2abs($_),$xoj);
};
my @pdfs;
next unless defined $entries->{$entry};
$sth->{insert_bibtex}->execute($entry,@{$entries->{$entry}}{qw(file_name doi html)});
$sth->{insert_bibtex}->finish();
- print STDERR "inserted $entry $entries->{$entry}\n" if $DEBUG;
+ print STDERR "inserted $entry {".join(',',map {defined $_?"'$_'":"'undef'"} %{$entries->{$entry}})."}\n" if $DEBUG;
}
}
p $paper if $DEBUG;
print STDERR $entry->{file_name} if $DEBUG;
if (defined $paper) {
- open_pdf($paper->{file_name},$options,$paper->{xoj});
+ open_pdf($paper->{path},$options,$paper->{has_xoj});
return;
}
}
my ($dbh,$sth,$bibtex_key) = @_;
my $entry = select_one($dbh,$sth->{select_bibtex_by_key},$bibtex_key);
+ if (not defined $entry) {
+ $bibtex_key =~ s/:.*$//;
+ $entry = select_one($dbh,$sth->{select_bibtex_by_approximate_key},$bibtex_key.'%');
+ }
return $entry;
}
EOF
select_bibtex_by_key => <<'EOF',
SELECT * FROM bibtex WHERE bibtex_key = ?;
+EOF
+ select_bibtex_by_approximate_key => <<'EOF',
+SELECT * FROM bibtex WHERE bibtex_key LIKE ?;
EOF
select_bibtex_by_file_name => <<'EOF',
SELECT * FROM bibtex WHERE file_name = ?;