NAME
Biblio::Zotero::DB - helper module to access the Zotero SQLite database
VERSION
version 0.003
SYNOPSIS
my $db = Biblio::Zotero::DB->new( profile_name => 'abc123.default' );
$db->schema->resultset('Item')->all;
ATTRIBUTES
schema
A DBIx::Class schema that is connected to the zotero.sqlite
file.
This can be cleared using clear_schema
.
db_file
A string that contains the filename of the zotero.sqlite
file. The default is located in the directory of "profile_directory"
attribute.
storage_directory
A string that contains the directory where the Zotero attachments are located. The default is the storage
subdirectory of the "profile_directory"
directory.
profile_directory
A string that contains the directory where the zotero.sqlite
database is located,
$db->profile_directory( "$ENV{HOME}/.zotero/zotero/abc123.default/zotero/" );
profile_name
A string containing the profile name to use. Setting this will set the "profile_directory"
attribute.
$db->profile_name( 'abc123.default' );
# corresponds to a profile directory such as
# <~/.zotero/zotero/abc123.default/zotero/>
METHODS
find_profile_directories()
Returns an arrayref of the possible profile directories that contain a Zotero SQLite database. This can be used as a class method.
see: http://www.zotero.org/support/zotero_data
Biblio::Zotero::DB->find_profile_directories()
# returns:
# [
# "$ENV{HOME}/.zotero/zotero/abc123.default/zotero",
# "$ENV{HOME}/.zotero/zotero/def567.default/zotero"
# ]
EXAMPLE
use Biblio::Zotero::DB;
use List::UtilsBy qw(min_by);
# find the most recently modified
my $newest = min_by { -M } @{Biblio::Zotero::DB->find_profile_directories};
my $db = Biblio::Zotero::DB->new( profile_directory => $newest );
# if there is an issue with the database lock here,
# see L<Biblio::Zotero::DB::Role::CopyDB>
$db->schema->resultset('Item')->all;
SEE ALSO
AUTHOR
Zakariyya Mughal <zmughal@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Zakariyya Mughal.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.