2
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
5
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
8
import sys, tempfile, os, logging, shutil
10
from calibre import setup_cli_handlers, __appname__
11
from calibre.ebooks.mobi.reader import MobiReader
12
from calibre.ebooks.lrf import option_parser as lrf_option_parser
13
from calibre.ebooks.lrf.html.convert_from import process_file as html_process_file
15
def generate_html(mobifile, tdir):
16
mr = MobiReader(mobifile)
17
mr.extract_content(tdir)
20
def process_file(path, options, logger=None):
22
level = logging.DEBUG if options.verbose else logging.INFO
23
logger = logging.getLogger('lit2lrf')
24
setup_cli_handlers(logger, level)
25
mobi = os.path.abspath(os.path.expanduser(path))
26
tdir = tempfile.mkdtemp('mobi2lrf', __appname__)
28
htmlfile = generate_html(mobi, tdir)
29
if not options.output:
30
ext = '.lrs' if options.lrs else '.lrf'
31
options.output = os.path.abspath(os.path.basename(os.path.splitext(path)[0]) + ext)
32
options.output = os.path.abspath(os.path.expanduser(options.output))
33
options.use_spine = True
34
html_process_file(htmlfile, options, logger=logger)
39
logger.warning('Failed to delete temporary directory '+tdir)
42
return lrf_option_parser(
43
_('''Usage: %prog [options] mybook.mobi|prc
46
%prog converts mybook.mobi to mybook.lrf''')
50
def main(args=sys.argv, logger=None):
51
parser = option_parser()
52
options, args = parser.parse_args(args)
56
print 'No mobi file specified'
58
process_file(args[1], options, logger)
62
if __name__ == '__main__':
b'\\ No newline at end of file'