mirror of
https://github.com/gryf/ebook-converter.git
synced 2026-01-02 00:22:25 +01:00
Here is the first batch of modules, which are needed for converting several formats to LRF. Some of the logic has been change, more cleanups will follow.
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
|
|
__license__ = 'GPL v3'
|
|
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
|
__docformat__ = 'restructuredtext en'
|
|
|
|
from ebook_converter.customize.conversion import InputFormatPlugin
|
|
from ebook_converter.polyglot.builtins import getcwd
|
|
|
|
|
|
class PDBInput(InputFormatPlugin):
|
|
|
|
name = 'PDB Input'
|
|
author = 'John Schember'
|
|
description = 'Convert PDB to HTML'
|
|
file_types = {'pdb', 'updb'}
|
|
commit_name = 'pdb_input'
|
|
|
|
def convert(self, stream, options, file_ext, log,
|
|
accelerators):
|
|
from ebook_converter.ebooks.pdb.header import PdbHeaderReader
|
|
from ebook_converter.ebooks.pdb import PDBError, IDENTITY_TO_NAME, get_reader
|
|
|
|
header = PdbHeaderReader(stream)
|
|
Reader = get_reader(header.ident)
|
|
|
|
if Reader is None:
|
|
raise PDBError('No reader available for format within container.\n Identity is %s. Book type is %s' %
|
|
(header.ident, IDENTITY_TO_NAME.get(header.ident, _('Unknown'))))
|
|
|
|
log.debug('Detected ebook format as: %s with identity: %s' % (IDENTITY_TO_NAME[header.ident], header.ident))
|
|
|
|
reader = Reader(header, stream, log, options)
|
|
opf = reader.extract_content(getcwd())
|
|
|
|
return opf
|