mirror of
https://github.com/gryf/ebook-converter.git
synced 2026-03-17 23:33:43 +01:00
Convert calibre modules to ebook_converter.
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.
This commit is contained in:
@@ -15,12 +15,12 @@ FORMAT_READERS = None
|
||||
|
||||
def _import_readers():
|
||||
global FORMAT_READERS
|
||||
from calibre.ebooks.pdb.ereader.reader import Reader as ereader_reader
|
||||
from calibre.ebooks.pdb.palmdoc.reader import Reader as palmdoc_reader
|
||||
from calibre.ebooks.pdb.ztxt.reader import Reader as ztxt_reader
|
||||
from calibre.ebooks.pdb.pdf.reader import Reader as pdf_reader
|
||||
from calibre.ebooks.pdb.plucker.reader import Reader as plucker_reader
|
||||
from calibre.ebooks.pdb.haodoo.reader import Reader as haodoo_reader
|
||||
from ebook_converter.ebooks.pdb.ereader.reader import Reader as ereader_reader
|
||||
from ebook_converter.ebooks.pdb.palmdoc.reader import Reader as palmdoc_reader
|
||||
from ebook_converter.ebooks.pdb.ztxt.reader import Reader as ztxt_reader
|
||||
from ebook_converter.ebooks.pdb.pdf.reader import Reader as pdf_reader
|
||||
from ebook_converter.ebooks.pdb.plucker.reader import Reader as plucker_reader
|
||||
from ebook_converter.ebooks.pdb.haodoo.reader import Reader as haodoo_reader
|
||||
|
||||
FORMAT_READERS = {
|
||||
'PNPdPPrs': ereader_reader,
|
||||
@@ -40,9 +40,9 @@ FORMAT_WRITERS = None
|
||||
|
||||
def _import_writers():
|
||||
global FORMAT_WRITERS
|
||||
from calibre.ebooks.pdb.palmdoc.writer import Writer as palmdoc_writer
|
||||
from calibre.ebooks.pdb.ztxt.writer import Writer as ztxt_writer
|
||||
from calibre.ebooks.pdb.ereader.writer import Writer as ereader_writer
|
||||
from ebook_converter.ebooks.pdb.palmdoc.writer import Writer as palmdoc_writer
|
||||
from ebook_converter.ebooks.pdb.ztxt.writer import Writer as ztxt_writer
|
||||
from ebook_converter.ebooks.pdb.ereader.writer import Writer as ereader_writer
|
||||
|
||||
FORMAT_WRITERS = {
|
||||
'doc': palmdoc_writer,
|
||||
|
||||
@@ -9,10 +9,10 @@ __license__ = 'GPL v3'
|
||||
__copyright__ = '2009, John Schember <john@nachtimwald.com>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
from calibre.ebooks.pdb.ereader import EreaderError
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ebooks.pdb.ereader.reader132 import Reader132
|
||||
from calibre.ebooks.pdb.ereader.reader202 import Reader202
|
||||
from ebook_converter.ebooks.pdb.ereader import EreaderError
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.ebooks.pdb.ereader.reader132 import Reader132
|
||||
from ebook_converter.ebooks.pdb.ereader.reader202 import Reader202
|
||||
|
||||
|
||||
class Reader(FormatReader):
|
||||
|
||||
@@ -14,12 +14,12 @@ import re
|
||||
import struct
|
||||
import zlib
|
||||
|
||||
from calibre import CurrentDir
|
||||
from calibre.ebooks import DRMError
|
||||
from calibre.ebooks.metadata.opf2 import OPFCreator
|
||||
from calibre.ebooks.pdb.ereader import EreaderError
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from polyglot.builtins import unicode_type, range
|
||||
from ebook_converter import CurrentDir
|
||||
from ebook_converter.ebooks import DRMError
|
||||
from ebook_converter.ebooks.metadata.opf2 import OPFCreator
|
||||
from ebook_converter.ebooks.pdb.ereader import EreaderError
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.polyglot.builtins import unicode_type, range
|
||||
|
||||
|
||||
class HeaderRecord(object):
|
||||
@@ -73,7 +73,7 @@ class Reader132(FormatReader):
|
||||
else:
|
||||
raise EreaderError('Unknown book compression %i.' % self.header_record.compression)
|
||||
|
||||
from calibre.ebooks.metadata.pdb import get_metadata
|
||||
from ebook_converter.ebooks.metadata.pdb import get_metadata
|
||||
self.mi = get_metadata(stream, False)
|
||||
|
||||
def section_data(self, number):
|
||||
@@ -81,7 +81,7 @@ class Reader132(FormatReader):
|
||||
|
||||
def decompress_text(self, number):
|
||||
if self.header_record.compression == 2:
|
||||
from calibre.ebooks.compression.palmdoc import decompress_doc
|
||||
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
|
||||
return decompress_doc(self.section_data(number)).decode('cp1252' if self.encoding is None else self.encoding, 'replace')
|
||||
if self.header_record.compression == 10:
|
||||
return zlib.decompress(self.section_data(number)).decode('cp1252' if self.encoding is None else self.encoding, 'replace')
|
||||
@@ -106,8 +106,8 @@ class Reader132(FormatReader):
|
||||
return self.decompress_text(number)
|
||||
|
||||
def extract_content(self, output_dir):
|
||||
from calibre.ebooks.pml.pmlconverter import footnote_to_html, sidebar_to_html
|
||||
from calibre.ebooks.pml.pmlconverter import PML_HTMLizer
|
||||
from ebook_converter.ebooks.pml.pmlconverter import footnote_to_html, sidebar_to_html
|
||||
from ebook_converter.ebooks.pml.pmlconverter import PML_HTMLizer
|
||||
|
||||
output_dir = os.path.abspath(output_dir)
|
||||
|
||||
|
||||
@@ -12,11 +12,11 @@ __docformat__ = 'restructuredtext en'
|
||||
import os
|
||||
import struct
|
||||
|
||||
from calibre import CurrentDir
|
||||
from calibre.ebooks.metadata.opf2 import OPFCreator
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ebooks.pdb.ereader import EreaderError
|
||||
from polyglot.builtins import unicode_type, range
|
||||
from ebook_converter import CurrentDir
|
||||
from ebook_converter.ebooks.metadata.opf2 import OPFCreator
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.ebooks.pdb.ereader import EreaderError
|
||||
from ebook_converter.polyglot.builtins import unicode_type, range
|
||||
|
||||
|
||||
class HeaderRecord(object):
|
||||
@@ -51,14 +51,14 @@ class Reader202(FormatReader):
|
||||
if self.header_record.version not in (2, 4):
|
||||
raise EreaderError('Unknown book version %i.' % self.header_record.version)
|
||||
|
||||
from calibre.ebooks.metadata.pdb import get_metadata
|
||||
from ebook_converter.ebooks.metadata.pdb import get_metadata
|
||||
self.mi = get_metadata(stream, False)
|
||||
|
||||
def section_data(self, number):
|
||||
return self.sections[number]
|
||||
|
||||
def decompress_text(self, number):
|
||||
from calibre.ebooks.compression.palmdoc import decompress_doc
|
||||
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
|
||||
data = bytearray(self.section_data(number))
|
||||
data = bytes(bytearray(x ^ 0xA5 for x in data))
|
||||
return decompress_doc(data).decode(self.encoding or 'cp1252', 'replace')
|
||||
@@ -86,7 +86,7 @@ class Reader202(FormatReader):
|
||||
return self.decompress_text(number)
|
||||
|
||||
def extract_content(self, output_dir):
|
||||
from calibre.ebooks.pml.pmlconverter import pml_to_html
|
||||
from ebook_converter.ebooks.pml.pmlconverter import pml_to_html
|
||||
|
||||
output_dir = os.path.abspath(output_dir)
|
||||
|
||||
|
||||
@@ -13,11 +13,11 @@ __docformat__ = 'restructuredtext en'
|
||||
import struct
|
||||
import os
|
||||
|
||||
from calibre import prepare_string_for_xml
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ebooks.metadata import MetaInformation
|
||||
from calibre.ebooks.txt.processor import opf_writer, HTML_TEMPLATE
|
||||
from polyglot.builtins import range, map
|
||||
from ebook_converter import prepare_string_for_xml
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.ebooks.metadata import MetaInformation
|
||||
from ebook_converter.ebooks.txt.processor import opf_writer, HTML_TEMPLATE
|
||||
from ebook_converter.polyglot.builtins import range, map
|
||||
|
||||
BPDB_IDENT = b'BOOKMTIT'
|
||||
UPDB_IDENT = b'BOOKMTIU'
|
||||
|
||||
@@ -13,7 +13,7 @@ __docformat__ = 'restructuredtext en'
|
||||
import re
|
||||
import struct
|
||||
import time
|
||||
from polyglot.builtins import long_type
|
||||
from ebook_converter.polyglot.builtins import long_type
|
||||
|
||||
|
||||
class PdbHeaderReader(object):
|
||||
|
||||
@@ -12,7 +12,7 @@ __docformat__ = 'restructuredtext en'
|
||||
import struct, io
|
||||
|
||||
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
|
||||
|
||||
class HeaderRecord(object):
|
||||
@@ -48,7 +48,7 @@ class Reader(FormatReader):
|
||||
if self.header_record.compression == 1:
|
||||
return self.section_data(number)
|
||||
if self.header_record.compression == 2 or self.header_record.compression == 258:
|
||||
from calibre.ebooks.compression.palmdoc import decompress_doc
|
||||
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
|
||||
return decompress_doc(self.section_data(number))
|
||||
return b''
|
||||
|
||||
@@ -63,7 +63,7 @@ class Reader(FormatReader):
|
||||
self.log.info('Converting text to OEB...')
|
||||
stream = io.BytesIO(raw_txt)
|
||||
|
||||
from calibre.customize.ui import plugin_for_input_format
|
||||
from ebook_converter.customize.ui import plugin_for_input_format
|
||||
|
||||
txt_plugin = plugin_for_input_format('txt')
|
||||
for opt in txt_plugin.options:
|
||||
|
||||
@@ -10,9 +10,9 @@ __copyright__ = '2010, John Schember <john@nachtimwald.com>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ptempfile import PersistentTemporaryFile
|
||||
from polyglot.builtins import range
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.ptempfile import PersistentTemporaryFile
|
||||
from ebook_converter.polyglot.builtins import range
|
||||
|
||||
|
||||
class Reader(FormatReader):
|
||||
@@ -33,7 +33,7 @@ class Reader(FormatReader):
|
||||
pdf.write(self.header.section_data(x))
|
||||
pdf.close()
|
||||
|
||||
from calibre.customize.ui import plugin_for_input_format
|
||||
from ebook_converter.customize.ui import plugin_for_input_format
|
||||
|
||||
pdf_plugin = plugin_for_input_format('pdf')
|
||||
for opt in pdf_plugin.options:
|
||||
|
||||
@@ -12,12 +12,12 @@ import zlib
|
||||
|
||||
from collections import OrderedDict
|
||||
|
||||
from calibre import CurrentDir
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ebooks.compression.palmdoc import decompress_doc
|
||||
from calibre.utils.imghdr import identify
|
||||
from calibre.utils.img import save_cover_data_to, Canvas, image_from_data
|
||||
from polyglot.builtins import codepoint_to_chr, range
|
||||
from ebook_converter import CurrentDir
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
|
||||
from ebook_converter.utils.imghdr import identify
|
||||
from ebook_converter.utils.img import save_cover_data_to, Canvas, image_from_data
|
||||
from ebook_converter.polyglot.builtins import codepoint_to_chr, range
|
||||
|
||||
DATATYPE_PHTML = 0
|
||||
DATATYPE_PHTML_COMPRESSED = 1
|
||||
@@ -353,7 +353,7 @@ class Reader(FormatReader):
|
||||
self.owner_id = mdata_section.owner_id
|
||||
|
||||
# Get the metadata (tile, author, ...) with the metadata reader.
|
||||
from calibre.ebooks.metadata.pdb import get_metadata
|
||||
from ebook_converter.ebooks.metadata.pdb import get_metadata
|
||||
self.mi = get_metadata(stream, False)
|
||||
|
||||
def extract_content(self, output_dir):
|
||||
@@ -445,7 +445,7 @@ class Reader(FormatReader):
|
||||
self.log.error('Failed to write composite image with uid %s: %s' % (uid, e))
|
||||
|
||||
# Run the HTML through the html processing plugin.
|
||||
from calibre.customize.ui import plugin_for_input_format
|
||||
from ebook_converter.customize.ui import plugin_for_input_format
|
||||
html_input = plugin_for_input_format('html')
|
||||
for opt in html_input.options:
|
||||
setattr(self.options, opt.option.name, opt.recommended_value)
|
||||
@@ -474,7 +474,7 @@ class Reader(FormatReader):
|
||||
raise NotImplementedError
|
||||
return zlib.decompress(data)
|
||||
elif self.header_record.compression == 1:
|
||||
from calibre.ebooks.compression.palmdoc import decompress_doc
|
||||
from ebook_converter.ebooks.compression.palmdoc import decompress_doc
|
||||
return decompress_doc(data)
|
||||
|
||||
def process_phtml(self, d, paragraph_offsets=[]):
|
||||
|
||||
@@ -14,8 +14,8 @@ import zlib
|
||||
import io
|
||||
|
||||
|
||||
from calibre.ebooks.pdb.formatreader import FormatReader
|
||||
from calibre.ebooks.pdb.ztxt import zTXTError
|
||||
from ebook_converter.ebooks.pdb.formatreader import FormatReader
|
||||
from ebook_converter.ebooks.pdb.ztxt import zTXTError
|
||||
|
||||
SUPPORTED_VERSION = (1, 40)
|
||||
|
||||
@@ -83,7 +83,7 @@ class Reader(FormatReader):
|
||||
self.log.info('Converting text to OEB...')
|
||||
stream = io.BytesIO(raw_txt)
|
||||
|
||||
from calibre.customize.ui import plugin_for_input_format
|
||||
from ebook_converter.customize.ui import plugin_for_input_format
|
||||
|
||||
txt_plugin = plugin_for_input_format('txt')
|
||||
for opt in txt_plugin.options:
|
||||
|
||||
Reference in New Issue
Block a user