home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- from __future__ import with_statement
- __license__ = 'GPL v3'
- __copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
- import os
- from calibre.ebooks.oeb.base import OPF_MIME, xml2str
- from calibre.ebooks.oeb.base import DirContainer, OEBError
- __all__ = [
- 'OEBWriter']
-
- class OEBWriter(object):
- DEFAULT_PROFILE = 'PRS505'
- TRANSFORMS = []
-
- def __init__(self, version = '2.0', page_map = False, pretty_print = False):
- self.version = version
- self.page_map = page_map
- self.pretty_print = pretty_print
-
-
- def config(cls, cfg):
- oeb = cfg.add_group('oeb', _('OPF/NCX/etc. generation options.'))
- versions = [
- '1.2',
- '2.0']
- oeb('opf_version', [
- '--opf-version'], default = '2.0', choices = versions, help = _('OPF version to generate. Default is %default.'))
- oeb('adobe_page_map', [
- '--adobe-page-map'], default = False, help = _('Generate an Adobe "page-map" file if pagination information is available.'))
- return cfg
-
- config = classmethod(config)
-
- def generate(cls, opts):
- version = opts.opf_version
- page_map = opts.adobe_page_map
- pretty_print = opts.pretty_print
- return cls(version = version, page_map = page_map, pretty_print = pretty_print)
-
- generate = classmethod(generate)
-
- def __call__(self, oeb, path):
- version = int(self.version[0])
- opfname = None
- if os.path.splitext(path)[1].lower() == '.opf':
- opfname = os.path.basename(path)
- path = os.path.dirname(path)
-
- if not os.path.isdir(path):
- os.mkdir(path)
-
- output = DirContainer(path, oeb.log)
- for item in oeb.manifest.values():
- output.write(item.href, str(item))
-
- if version == 1:
- metadata = oeb.to_opf1()
- elif version == 2:
- metadata = oeb.to_opf2(page_map = self.page_map)
- else:
- raise OEBError('Unrecognized OPF version %r' % self.version)
- pretty_print = (version == 1).pretty_print
- for href, data in metadata.items():
- if opfname and mime == OPF_MIME:
- href = opfname
-
- output.write(href, xml2str(data, pretty_print = pretty_print))
-
-
-
-