NAME
EBook::Tools::MSReader - Helper code for working with Microsoft Reader (.lit) e-books.
SYNOPSIS
use EBook::Tools::MSReader qw(find_convertlit find_convertlit_keys
system_convertlit);
$EBook::Tools::MSReader::convertlit_cmd = '/opt/convertlit/clit';
$EBook::Tools::MSReader::convertlit_keys = '/opt/convertlit/keys.txt';
my $convertlit = find_convertlit();
my $keyfile = find_convertlit_keys();
system_convertlit(infile => 'myfile.lit',
dir => 'myfile-unpacked');
PROCEDURES
All procedures are exportable, but none are exported by default.
find_convertlit()
Attempts to locate the convertlit executable by making a test execution on predicted locations (including just checking PATH) and looking in the EBook::Tools user configuration directory (see "userconfigdir()" in EBook::Tools.
Returns the system command used for a successful invocation, or undef if nothing worked.
This will use package variable $convertlit_cmd
as its first guess, and set that variable to the return value as well.
find_convertlit_keys($filename)
Attempts to locate the convertlit keys.txt
file by checking predicted filenames, both in the current working directory and in the EBook::Tools user configuration directory (see "userconfigdir()" in EBook::Tools.
If $filename
is provided, the file basename-keys.txt
will also be checked in both locations.
Returns the name of the first file found, or undef if nothing was found.
This will use package variable $convertlit_keys
as its first guess, and set that variable to the return value as well.
system_convertlit(%args)
Runs convertlit
to extract or downconvert a MS Reader .lit file. The procedures find_convertlit() and find_convertlit_keys() are both called to locate necessary helper files.
Returns the return value from convertlit, or undef if convertlit or the input file could not be found, or neither output file nor directory is specified.
Arguments
infile
The input filename. If not specified or invalid, the procedure croaks.
outfile
The output filename. If this is specified convertlit will perform a downconversion.
dir
The output directory. If this is specified, and
outfile
is not, convertlit will perform an extraction. If both this andoutfile
are specified, convertlit will downconvert and place the downconverted file into the specified directory.keyfile
The location of the
keys.txt
file containing the encryption keys, if available. This is only required if the.lit
file is DRM-protected and package variable$convertlit_keys
does not point to the correct file.
BUGS AND LIMITATIONS
All handling happens through ConvertLIT as an external helper. Native Perl code may eventually be written to handle non-DRMed extraction.
Unit tests are unwritten
AUTHOR
Zed Pobre <zed@debian.org>
LICENSE AND COPYRIGHT
Copyright 2008 Zed Pobre
Licensed to the public under the terms of the GNU GPL, version 2.
ConvertLIT (not included) is copyright 2002, 2003 Dan A. Jackson, and licensed under the terms of the GNU GPL, version 2 or later.